malenki/url

一个简单的类,用于处理URL,使用魔法获取器、多语法方式,以您想要的方式玩转URL!

0.1.0 2014-04-17 11:39 UTC

This package is not auto-updated.

Last update: 2024-09-14 16:08:24 UTC


README

Build Status

轻松处理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部分(schemeport……)。因此,$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';