北京尚网汇智科技有限公司
您当前所在的位置:尚网汇智网站建设 > PHP技术 > 文章详细
网站建设知识
NEWS
联系我们
  • 网站建设服务电话
  • 400-883-2887
  • 公司地址:北京市昌平科技园区创意大厦2-806
  • 服务项目
    高端网站建设
    移动/微信网站建设
    手机APP开发
    OA/ERP业务系统开发
    网站维护托管
    CMS模板制作

    【PHP经验】PHP 四种URL解析处理方式

    发布时间:2014-07-18 00:28:21

    在已知URL参数的情况下,我们可以根据自身情况采用$_GET来获取相应的参数信息($_GET['name']);
    那,在未知情况下如何获取到URL上的参数信息呢?
    今天查了下资料,自己也留个笔记,以后也好找...
    好,废话不多说,下面给大家列举四个利用PHP自有函数来实现未知URL参数的获取;

    第一种、利用$_SERVER内置数组变量
    相对较为原始的$_SERVER['QUERY_STRING']来获取,URL的参数,通常使用这个变量返回的会是类似这样的数据:name=tank&sex=1
    如果需要包含文件名的话可以使用$_SERVER['REQUEST_URI'](返回类似:/index.php?name=tank&sex=1)

    第二种、利用pathinfo内置函数
    <?php
    $test = pathinfo('http://localhost/index.php');
    print_r($test);
    /*
    结果如下
    Array
    (
        [dirname] => http://localhost //url的路径
        [basename] => index.php  //完整文件名
        [extension] => php  //文件名后缀
        [filename] => index //文件名
    )
    */
    ?>

    第三种、利用parse_url内置函数
    <?php
    $test = parse_url('http://localhost/index.php?name=tank&sex=1#top');
    print_r($test);
    /*
    结果如下
    Array
    (
        [scheme] => http //使用什么协议
        [host] => localhost //主机名
        [path] => /index.php //路径
        [query] => name=tank&sex=1 // 所传的参数
        [fragment] => top //后面根的锚点
    )
    */
    ?>

    第四种、利用basename内置函数
    <?php
    $test = basename('http://localhost/index.php?name=tank&sex=1#top');
    echo $test;
    /*
    结果如下
    index.php?name=tank&sex=1#top
    */
    ?>

    另外,还有就是自己通过正则匹配的处理方式来获取需要的值了。这种方式较为精确,效率暂不考虑。。。
    下面拓展实践下正则处理方式:
    <?php
    preg_match_all('/(w+=w+)(#w+)?/i','http://localhost/index.php?name=tank&sex=1#top',$match);
    print_r($match);
    /*
    结果如下
    Array
    (
        [0] => Array
            (
                [0] => name=tank
                [1] => sex=1#top
            )
        [1] => Array
            (
                [0] => name=tank
                [1] => sex=1
            )
        [2] => Array
            (
                [0] =>
                [1] => #top
            )
    )
    */
    ?>


    文章出自:北京网站建设公司-尚网汇智 https://www.net2006.com 如转载请注明出处!
    咨询服务热线
    400-883-2887
    客服电话:400-883-2887  传真:010-51654992  E-mail:support@net2006.com
    本站设计已受版权保护,任何公司及个人不得复制,违者将依法追究责任,特此声明。

    Copyright © 2005-2018 北京尚网汇智科技有限公司 版权所有 京ICP备13031271号
    查找内容: