黑马程序员技术交流社区

标题: 【广州PHP】怎么在PHP中解析url并得到url参数 [打印本页]

作者: gz_xudada    时间: 2018-10-11 17:50
标题: 【广州PHP】怎么在PHP中解析url并得到url参数
本帖最后由 gz_xudada 于 2018-10-11 17:56 编辑

1.拿到一个完整url后,如何解析该url得到里面的参数
2.如何把一个数组拼接成url传递
3.测试调用
4.完整代码
[PHP] 纯文本查看 复制代码

<?php
    header('Content-type:text/html;charset=utf-8');
    /**
     * 解析url中参数信息,返回参数数组
     * @param [String] $query   url字符串
     * @return [Array] $params 返回url参数的数组
     */
    function convertUrlQuery($query){
             $queryParts = explode('&', $query);
              $params = array();
              foreach ($queryParts as $param) {
                       $item = explode('=', $param);
                       $params[$item[0]] = $item[1];
              }
              return $params;
    }

    /**
     * 把数组拼接成url参数形式
     * @param [Array] $array_query 需要转换成url参数的数组
     * @return [String] $params 返回一个拼接好的字符串,格式为:key1=value1&key2=value2
     */
    function getUrlQuery($array_query){
              $tmp = array();
              foreach ($array_query as $k => $param) {
                       $tmp[] = $k . '=' . $param;
              }
              $params = implode('&', $tmp);
              return $params;
    }

    // 测试调用
    // 定义一个url字符串
    $url = 'http://www.itcast.cn/subject/phpzly/index.shtml?username=zhangsan&age=23';
    // 解析url,得到参数字符串
    $url = parse_url($url);
    // 字符串->数组
    $param_arr = convertUrlQuery($url['query']);
    echo "<pre>";
    var_dump($param_arr);
    // 数组->字符串
    $param_str = getUrlQuery($param_arr);
    var_dump($param_str);
?>






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2