php解析url的几种方式
1、利用$_SERVER内置数组变量
访问:
http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1
//URL的参数 echo $_SERVERQUERY_STRING; 返回: m=admin&c=index&a=lists&catid=1&page=1 //包含文件名 echo $_SERVERREQUEST_URI;
返回:
/test.php?m=admin&c=index&a=lists&catid=1&page=1
2、利用pathinfo内置函数
echo ; $url = http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top; var_export(pathinfo($url));
返回:
array ( dirname => http://localhost, basename => test.php?m=admin&c=index&a=lists&catid=1&page=1#top, extension => php?m=admin&c=index&a=lists&catid=1&page=1#top, filename => test, )
3、利用parse_url内置函数
echo ; $url = http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top; var_export(parse_url($url));
返回:
array ( scheme => http, host => localhost, path => /test.php, query => m=admin&c=index&a=lists&catid=1&page=1, fragment => top, )
4、利用basename内置函数
echo ; $url = http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top; var_export(basename($url));
返回:
test.php?m=admin&c=index&a=lists&catid=1&page=1#top
5、正则匹配
echo ; $url = http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top; preg_match_all(/(w+=w+)(#w+)?/i,$url,$match); var_export($match);
返回:
array ( 0 => array ( 0 => m=admin, 1 => c=index, 2 => a=lists, 3 => catid=1, 4 => page=1#top, ), 1 => array ( 0 => m=admin, 1 => c=index, 2 => a=lists, 3 => catid=1, 4 => page=1, ), 2 => array ( 0 => , 1 => , 2 => , 3 => , 4 => #top, ), )
url常用处理方法
/** * 将字符串参数变为数组 * @param $query * @return array */ function convertUrlQuery($query) { $queryParts = explode(&, $query); $params = array(); foreach ($queryParts as $param) { $item = explode(=, $param); $params$item0 = $item1; } return $params; } /** * 将参数变为字符串 * @param $array_query * @return string */ function getUrlQuery($array_query) { $tmp = array(); foreach ($array_query as $k => $param) { $tmp = $k . = . $param; } $params = implode(&, $tmp); return $params; }
例:
echo ; $url = http://localhost/test.php?m=admin&c=index&a=lists&catid=1&page=1#top; $arr = parse_url($url); $arr_query = convertUrlQuery($arrquery); var_export($arr_query);
返回:
array ( m => admin, c => index, a => lists, catid => 1, page => 1, ) 1 var_export(getUrlQuery($arr_query));
返回:
m=admin&c=index&a=lists&catid=1&page=1
版权声明:
—— 本文内容由互联网用户自发贡献, 本站不拥有所有权, 不承担相关法律责任, 如果发现本站有涉嫌抄袭的内容, 欢迎发送邮件至 :
—— 1034252225@qq.com 举报, 并提供相关证据, 一经查实, 本站将立刻删除涉嫌侵权内容。