malenki / url
一个简单的类,用于处理URL,使用魔法获取器、多语法方式,以您想要的方式玩转URL!
0.1.0
2014-04-17 11:39 UTC
Requires
- php: >=5.3.0
- malenki/bah: dev-master
This package is not auto-updated.
Last update: 2024-09-14 16:08:24 UTC
README
轻松处理URL!
简介
在PHP中玩转URL字符串,您必须处理一些函数,这并不容易。使用我的小库,您可以轻松地获取/设置/完成URL的许多部分。以下是一个快速示例,给您一些想法
$u = new Url('http://username:password@hostname:8080/path?arg=value#anchor'); echo $u->credential; echo $u->host; // you can change some parts using this way: $u->credential->user = 'login'; $u->host = 'example.org' $u->query->foo = 'bar'; // you can use other way too: $u->user('login')->host('example.org')->query(array('foo', 'bar')); // toString available: echo $u; // http://login:password@example.org:8080/path?arg=value&foo=bar#anchor
如何使用它
您可以使用两种方式处理URL
- Url类的链式方法
- 对URL的部分调用一些方法,以获得最佳控制。
仅URL类
设置值或完成它们
每个URL部分都可以使用其名称作为链式方法来调用,如下面的示例所示
$u = new Url('http://username:password@hostname:8080/path?arg=value#anchor'); $u->user('login')->host('example.org')->query(array('foo', 'bar'));
请注意,方法path()
和query()
不会删除原始内容,而是使用给定的值完成它。您必须像下一部分中解释的那样先禁用相应的部分。
禁用部分或测试其可用性
还可以通过使用方法no()
、disable()
和has()
执行更多操作
no()
和disable()
效果相同,一个是另一个的别名,并接受一个字符串或字符串数组作为参数。参数必须包含一个URL部分(scheme
、port
……)。因此,$u->no('port')
禁用端口部分,而$u->disable(array('query', 'path'))
从URL中删除查询和路径部分。has()
测试一个部分是否在URL中可用。很简单,您给出要测试的部分的名称,如果找到填满的部分,则方法返回true
。
所有在本节中解释的方法都可以通过使用方法名称作为前缀,后面跟着下划线和部分名称,通过使用魔法获取器来调用,因此,例如您可以这样做
echo $u->no_port->disable_credential; var_dump($u->has_port);
对URL的部分进行操作
使用与URL部分相关的相对方法,您可以获得最佳控制
$u = new Url('http://username:password@hostname:8080/path?arg=value#anchor'); $u->anchor->clear; // delete anchor $u->path->add('other'); // add branch to path $u->query->arg = 'other_value'; // Changed one arg of the query string
常用方法
每个部分至少有这些方法
isVoid()
用于测试部分是否有内容clear()
用于避免部分toString()
可用
一次性设置
您可以直接设置部分(覆盖原始内容)
$u = new Url('http://username:password@hostname:8080/path?arg=value#anchor'); $u->path = 'other/path'; //or using array $u->anchor = 'new_anchor';