cmsx / url
CMSx URL 组件
dev-master
2014-05-21 19:35 UTC
Requires
- php: >=5.3.0
- cmsx/html: dev-master
This package is not auto-updated.
Last update: 2024-09-14 13:33:35 UTC
README
术语
由符号 /
分隔的 URL 部分称为参数。例如:/my/cool/page/
。在此情况下,参数的顺序很重要,因为地址是按编号从 1 开始的。也就是说,解析上述示例后,将得到以下参数集
1 => 'my'
2 => 'cool'
3 => 'page'
如果需要传递命名参数,它将作为“名称:值”的形式传递,例如:/id:12/height:yahoo/
。在这种情况下,参数的顺序无关紧要。可以组合参数和参数,但参数始终位于 URL 的末尾。例如:/my/pretty/what:page/what:site/
。
可以作为参数指定锚点(例如 #anchor
)或文件名(例如 file.txt
),它们将作为参数可用,但在生成字符串时始终位于末尾,并且不会以 /
结尾。
URL 解析
一切从创建 URL 对象开始。解析地址发生在调用 load()
时,可以传递任何 URL 部分集合作为参数。可以在构造函数中直接传递相同的参数集。
以下调用具有相同的结果
$u = new URL();
$u->load('/my/page/id:12/hello:world/');
$u = new URL('/my/page/id:12/hello:world/');
$u = new URL('my/page', array('id'=>12, 'hello'=>'world'));
$u = new URL('my', 'page/id:12', array('hello'=>'world'));
唯一的区别在于:如果不传递参数调用 load()
,对象将加载当前 URL,而如果没有参数调用构造函数,将创建一个空对象。
参数和参数
地址解析后,URL 对象提供几种访问参数和参数的方法
hasArgument($num)
- 检查是否存在参数;hasParameter($name)
- 检查是否存在参数;getArgument($num, $default = false)
- 获取参数值。如果不存在 - 返回 $default;getParameter($name, $filter = null, $default = false)
- 获取参数值。如果不存在 - 返回 $default。$filter - 检查值,可以是正则表达式或任何 callable;getArguments()
- 获取所有参数的数组;getParameters()
- 获取所有参数的数组。
要更改参数或参数,可以使用以下功能
cleanArguments($array = null)
- 清除参数。在 $array 中可以直接传递新的参数数组;cleanParameters($array = null)
- 清除参数。在 $array 中可以直接传递新的参数数组;setArgument($num, $value = null)
- 设置参数值。如果 $value = null,则删除参数;setParameter($name, $value = null)
- 设置参数值。如果 $value = null,则删除参数;addArgument($arg)
- 添加参数;addParameter($name, $mixed)
- 添加参数。$mixed - int|string|array;addArguments($mixed, $_)
- 添加参数。可以一次性通过字符串或数组传递多个参数;addParameters($array, $_)
- 添加参数。可以一次性传递多个数组;
URL 显示
URL 对象有两种输出地址的方式
toString()
- 返回地址字符串;toHTML($text = null, $attr = null, $target = null)
- 返回 HTML 链接。$text - 链接文本,$attr - A 标签的属性数组或用作 class="$attr" 的字符串。$target - target 属性。