额。。。这几天晚上都有事所以都没怎么学习,真是罪过啊,罪过。。
这个是接着上一篇的结尾处的内容继续的:
对url处理
parse_str(string str):将字符串解析到变量中,例如
parse_str("a=2&b=4&c=5");
echo $a."-----";
echo $b;
输出结果为:2-----4
parse_str(string str,array arr):将解析到的字符串存储到arr数组中,例如
parse_str("a=2&b=3&c=4",$arr);
print_r($arr);
parse_url(string $url[, int $component = -1 ]): 对url字符串进行解析,并将结果返回数组中 php上的解释:http://www.php.net/manual/zh/function.parse-url.php
参数:
url:要解析的 URL。无效字符将使用 _ 来替换。
component:指定 PHP_URL_SCHEME、 PHP_URL_HOST、 PHP_URL_PORT、 PHP_URL_USER、 PHP_URL_PASS、 PHP_URL_PATH、 PHP_URL_QUERY 或 PHP_URL_FRAGMENT 的其中一个来获取 URL 中指定的部分的 string。 (除了指定为 PHP_URL_PORT 后,将返回一个 integer 的值)。
$parseURL = parse_url("http://www.baidu.com?a=23&b=2");
print_r($parseURL);
输出结果 :Array ( [scheme] => http [host] => www.baidu.com [query] => a=23&b=2 )
一般情况下,用的最多的应该是[query]这个了
还会有一些其他的参数。如下:
-
-
-
- scheme - 如 http
- host
- port
- user
- pass
- path
- query - 在问号 ? 之后
- fragment - 在散列符号 # 之后
-
-
如果指定了
component
参数, parse_url() 返回一个 string (或在指定为 PHP_URL_PORT
时返回一个 integer)而不是array。如果 URL 中指定的组成部分不存在,将会返回 NULL
。 又一个例子:
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
以上例程会输出:
Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [query] => arg=value [fragment] => anchor ) /path
url编码处理函数:
rawurlencode(string $str);按照RFC编码规则进行编码,将空格编码成%20
rawurldecode(string $str):对已经编码的url进行解码
urlencode():对url进行编码,将空格编码成+
urldecode():对url进行解码
构造查询字符串等:
http_build_query(); http://cn2.php.net/manual/zh/function.http-build-query.php 生成 URL-encode 之后的请求字符串,例子:
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data) . "
";
echo http_build_query($data, '', '&');
?>
以上例程会输出:
foo=bar&baz=boom&cow=milk&php=hypertext+processor foo=bar&baz=boom&cow=milk&php=hypertext+processor
对url处理
parse_str(string str):将字符串解析到变量中,例如
parse_str("a=2&b=4&c=5");
echo $a."-----";
echo $b;
输出结果为:2-----4
parse_str(string str,array arr):将解析到的字符串存储到arr数组中,例如
parse_str("a=2&b=3&c=4",$arr);
print_r($arr);
parse_url(string $url[, int $component = -1 ]): 对url字符串进行解析,并将结果返回数组中 php上的解释:http://www.php.net/manual/zh/function.parse-url.php
参数:
url:要解析的 URL。无效字符将使用 _ 来替换。
component:指定 PHP_URL_SCHEME、 PHP_URL_HOST、 PHP_URL_PORT、 PHP_URL_USER、 PHP_URL_PASS、 PHP_URL_PATH、 PHP_URL_QUERY 或 PHP_URL_FRAGMENT 的其中一个来获取 URL 中指定的部分的 string。 (除了指定为 PHP_URL_PORT 后,将返回一个 integer 的值)。
$parseURL = parse_url("http://www.baidu.com?a=23&b=2");
print_r($parseURL);
输出结果 :Array ( [scheme] => http [host] => www.baidu.com [query] => a=23&b=2 )
一般情况下,用的最多的应该是[query]这个了
还会有一些其他的参数。如下:
-
-
-
- scheme - 如 http
- host
- port
- user
- pass
- path
- query - 在问号 ? 之后
- fragment - 在散列符号 # 之后
-
-
如果指定了
component
参数, parse_url() 返回一个 string (或在指定为 PHP_URL_PORT
时返回一个 integer)而不是array。如果 URL 中指定的组成部分不存在,将会返回 NULL
。 又一个例子:
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
以上例程会输出:
Array ( [scheme] => http [host] => hostname [user] => username [pass] => password [path] => /path [query] => arg=value [fragment] => anchor ) /path
url编码处理函数:
rawurlencode(string $str);按照RFC编码规则进行编码,将空格编码成%20
rawurldecode(string $str):对已经编码的url进行解码
urlencode():对url进行编码,将空格编码成+
urldecode():对url进行解码
构造查询字符串等:
http_build_query(); http://cn2.php.net/manual/zh/function.http-build-query.php 生成 URL-encode 之后的请求字符串,例子:
<?php
$data = array('foo'=>'bar',
'baz'=>'boom',
'cow'=>'milk',
'php'=>'hypertext processor');
echo http_build_query($data) . "
";
echo http_build_query($data, '', '&');
?>
以上例程会输出:
foo=bar&baz=boom&cow=milk&php=hypertext+processor foo=bar&baz=boom&cow=milk&php=hypertext+processor