PHP:解析url和查询参数query

解析url音频<?php$url = 'https://www.php.net/manual/zh/language.types.php?name=Tom&age=23';// 体式格局一:parse_urlprint_r(parse_url($url));// Array// (// [scheme] => https// [host] => www.php.net// [path] => /manual/zh/language.types.php// [query] => name=Tom&age=23// )// 体式格局二:pathinfoprint_r(pathinfo($url));// Array// (// [dirname] => https://www.php.net/manual/zh// [basename] => language.types.php?name=Tom&age=23// [extension] => php?name=Tom&age=23// [filename] => language.types// )// 体式格局三:basenameprint_r(basename($url));// language.types.php?name=Tom&age=23查询参数阐发<?php/** * 将字符串参数酿成数组 * @param $query string * @return array * */function decodeUrlQuery($query_str){ $query_pairs = explode('&', $query_str); $params = []; foreach ($query_pairs as $query_pair) { $item = explode('=', $query_pair); $params[$item[0]] = $item[1]; } return $params;}/** * 将参数酿成字符串 * @param $query_array array * @return string */function encodeUrlQuery($query_array){ $tmp = array(); foreach ($query_array as $key => $value) { $tmp[] = $key . '=' . $value; } return implode('&', $tmp);}// 示例$url = 'https://www.php.net/manual/zh/language.types.php?name=Tom&age=23';// 字符串转数组$query_str = parse_url($url)['query'];$query_array = decodeUrlQuery($query_str);print_r($query_array);// Array// (// [name] => Tom// [age] => 23// )// 数组转字符串print_r(encodeUrlQuery($query_array));// name=Tom&age=23扩展:查询字符串编码

利用php自带的查询参数编码函数

$data = [ 'name' => 'Tom', 'age' => 23];echo encodeUrlQuery($data) . PHP_EOL;// name=Tom&age=23echo http_build_query($data) . PHP_EOL;// name=Tom&age=23

若是是中国墨水,就会被编码。

$data = [ 'name' => '汤姆', 'age' => 23];echo encodeUrlQuery($data) . PHP_EOL;// name=汤姆&age=23echo http_build_query($data) . PHP_EOL;// name=%E6%B1%A4%E5%A7%86&age=23

参考 php解析url并丧失url中的参数,得到url参数的四种形式。

您可以还会对下面的文章感兴趣:

暂无相关文章

最新评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。