mirror of
https://github.com/YGGverse/net-php.git
synced 2026-03-31 17:15:35 +00:00
implement absolute address converter
This commit is contained in:
parent
3329a90819
commit
92eb9b3ba2
2 changed files with 179 additions and 45 deletions
87
README.md
87
README.md
|
|
@ -70,31 +70,96 @@ var_dump(
|
|||
|
||||
### Address
|
||||
|
||||
Includes useful methods to work with network addresses
|
||||
Includes methods to work with network addresses.
|
||||
|
||||
#### Base address methods
|
||||
|
||||
Different operations with address parts:
|
||||
|
||||
* `scheme`
|
||||
* `user`
|
||||
* `password`
|
||||
* `host`
|
||||
* `protocol`
|
||||
* `path`
|
||||
* `query`
|
||||
* `fragment`
|
||||
|
||||
#### Address conversion from relative to absolute format
|
||||
|
||||
**Document root**
|
||||
|
||||
```
|
||||
$base = new \Yggverse\Net\Address(
|
||||
'http://yo.ygg/a1/b1/c1'
|
||||
);
|
||||
|
||||
$address = new \Yggverse\Net\Address(
|
||||
'http://yo.ygg'
|
||||
'/a2'
|
||||
);
|
||||
|
||||
var_dump(
|
||||
$address->getScheme() // Scheme substring
|
||||
$address->getAbsolute(
|
||||
$base
|
||||
) // return http://yo.ygg/a2
|
||||
);
|
||||
```
|
||||
|
||||
**Current folder**
|
||||
|
||||
```
|
||||
$base = new \Yggverse\Net\Address(
|
||||
'http://yo.ygg/a1/b1/c1'
|
||||
);
|
||||
|
||||
...
|
||||
|
||||
$subject = new \Yggverse\Net\Address(
|
||||
'./some/uri'
|
||||
$address = new \Yggverse\Net\Address(
|
||||
'c2'
|
||||
);
|
||||
|
||||
var_dump(
|
||||
$address->absolute(
|
||||
$subject
|
||||
) // return http://yo.ygg/some/uri
|
||||
$address->getAbsolute(
|
||||
$base
|
||||
) // return http://yo.ygg/a1/b1/c2
|
||||
);
|
||||
```
|
||||
|
||||
**Ending slash**
|
||||
|
||||
```
|
||||
$base = new \Yggverse\Net\Address(
|
||||
'http://yo.ygg/a1/b1/c1/'
|
||||
);
|
||||
|
||||
$address = new \Yggverse\Net\Address(
|
||||
'../../b2/c2'
|
||||
);
|
||||
|
||||
var_dump(
|
||||
$address->getAbsolute(
|
||||
$base
|
||||
) // return http://yo.ygg/a1/b2/c2
|
||||
);
|
||||
```
|
||||
|
||||
**All options**
|
||||
|
||||
```
|
||||
$base = new \Yggverse\Net\Address(
|
||||
'http://user:password@yo.ygg/a1/b1/c1?attribute=value#anchor'
|
||||
);
|
||||
|
||||
$address = new \Yggverse\Net\Address(
|
||||
'../../a2/b2?attribute2=value2#anchor2'
|
||||
);
|
||||
|
||||
var_dump(
|
||||
$address->getAbsolute(
|
||||
$base
|
||||
) // return http://user:password@yo.ygg/a2/b2?attribute2=value2#anchor2
|
||||
);
|
||||
```
|
||||
|
||||
## Integrations
|
||||
|
||||
* [Network API with native Yggdrasil/IPv6 support](https://github.com/YGGverse/web-api)
|
||||
* [Yo! Search Crawler for different networks](https://github.com/YGGverse/Yo)
|
||||
* [Yo! Crawler for different networks](https://github.com/YGGverse/Yo)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue