parse_str、parse_url的使用
这两个函数都是用来解析固定格式的字符串的。parse_str用来解析URL中的查询字符串,即可以通过$_SERVER['QUERY_STRING']取得的字符串值,假如我们请求的URL是http://localhost/parse_str.php?id=1&category=php&title=php-install,那么$_SERVER['QUERY_STRING']返回的值为id=1&category=php&title=php-install,而这种形式的字符串恰巧可以使用parse_str解析成关联数组的形式。parse_url是用来解析URL的,它可以把当前请求的URL字符串解析为关联数组的形式。下面详细地看看这两个函数究竟能够提供怎样的功能!
parse_str函数的原型:void parse_str( string $str [, array &$arr ] )。该函数接收两个参数,$str为需要解析的字符串,而可选参数$arr为解析之后生成的数组值所存放的变量名,如果忽略可选参数,那么可以直接调用类似$id、$category、$title的变量。下面的脚本模拟了GET请求。
<?php
<a href="http://localhost/parse_str.php?id=1&category=php&title=php-install">Click Here</a>
$query_str = $_SERVER['QUERY_STRING'];
parse_str($query_str); /* 这种方式可以直接使用变量$id, $category, $title */
parse_str($query_str, $query_arr);
?>
<pre><?php print_r($query_arr); ?></pre>
<p><?php echo $id; ?></p>
<p><?php echo $category; ?></p>
<p><?php echo $title; ?></p>
/* 运行结果 */
Array
(
[id] => 1
[category] => php
[title] => php-install
)
1
php
php-install
parse_url函数的原型:array parse_url( string $url )。该函数接收URL作为参数,但是并不检查URL的合法性,所以它会尽可能地解析,对严重不合格的URL,parse_url()可能会返回FALSE并发出E_WARNING。否则会返回一个关联数组,其组成部分为(至少有一个):
scheme - 如 http host - 如 localhost port - 如 80 user pass path - 如 /parse_str.php query - 在问号 ? 之后 如 id=1&category=php&title=php-install fragment - 在散列符号 # 之后
所有评论我要评论