`
moqiang02
  • 浏览: 530315 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
文章分类
社区版块
存档分类
最新评论

3个解析url的php函数

 
阅读更多

通过url进行传值,是php中一个传值的重要手段。所以我们要经常对url里面所带的参数进行解析,如果我们知道了url传递参数名称,例如

/index.php?name=tank&sex=1#top

我们就可以通过$_GET['name'],$_GET['sex']来获得传的数据。但是如果我们不知道这些变量名又怎么办呢?这也是写这篇博文的目的,因为自己老是忘,所以做个标记,下次就不要到处找了。

我们可以通php的变量来获得url和要传的参数字符串

$_SERVER["QUERY_STRING"]name=tank&sex=1

$_SERVER["REQUEST_URI"]/index.php?name=tank&sex=1

javascript也可以获得来源的url,document.referrer;方法有很多


1,利用pathinfo

<?php  
$test = pathinfo("http://localhost/index.php");  
print_r($test);  
?>  
结果如下  
Array  
(  
    [dirname] => http://localhost //url的路径  
    [basename] => index.php  //完整文件名  
    [extension] => php  //文件名后缀  
    [filename] => index //文件名  
) 

2,利用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 //后面根的锚点  
) 

3,利用basename

<?php  
$test = basename("http://localhost/index.php?name=tank&sex=1#top");  
echo $test;  
?>  
结果如下  
index.php?name=tank&sex=1#top 

上面三种方法,我们基本上,就可以得我们所要的东西了。其实还有一种方法就是用正则,也可以很快的得到我们想到的数据。

传递的参数方式有很多,但是主要有这二种,一种是,name=tank&sex=1#top;一种是,name=tank&sex=1。

<?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  
        )  
)

<?php  
preg_match_all("/(\w+)=(\w+)/i","http://localhost/index.php?name=tank&sex=1",$match);  
print_r($match);
?> 
结果如下
Array
(
    [0] => Array
        (
            [0] => name=tank
            [1] => sex=1
        )

    [1] => Array
        (
            [0] => name
            [1] => sex
        )

    [2] => Array
        (
            [0] => tank
            [1] => 1
        )

)

要的数据都匹配出来了,好长时间搞正则了,手都有点生了。上面正则中的规则不是死的,规则是根据url来推测的。


分享到:
评论

相关推荐

    浅谈PHP解析URL函数parse_url和parse_str

    PHP中有两个方法可以用来解析URL,分别是parse_url和parse_str。 parse_url 解析 URL,返回其组成部分 mixed parse_url ( string $url [, int $component = -1 ] ) 本函数解析一个 URL 并返回一个关联数组,包含在 ...

    即用即查PHP函数参考手册.part2.rar

    第十六章 URL函数 第十七章 Mail函数 第十八章 HTTP函数 第十九章 FTP函数 第二十章 Network函数 第六篇 图象处理篇 第二十一章 Exif函数 第二十二章 Image函数 第七篇 Win32函数篇 第二十三章 Win32PI函数 第二十...

    \即用即查PHP函数参考手册.part4.rar

    第十六章 URL函数 第十七章 Mail函数 第十八章 HTTP函数 第十九章 FTP函数 第二十章 Network函数 第六篇 图象处理篇 第二十一章 Exif函数 第二十二章 Image函数 第七篇 Win32函数篇 第二十三章 Win32PI函数 第二十...

    PHP函数参考手册大全

    XML 语法解析函数 CLVII. XML-RPC 函数 CLVIII. XMLReader functions CLIX. XSL functions CLX. XSLT Functions CLXI. YAZ Functions CLXII. YP/NIS Functions CLXIII. Zip File Functions (Read Only Access) ...

    即用即查PHP函数参考手册.part3.rar

    第十六章 URL函数 第十七章 Mail函数 第十八章 HTTP函数 第十九章 FTP函数 第二十章 Network函数 第六篇 图象处理篇 第二十一章 Exif函数 第二十二章 Image函数 第七篇 Win32函数篇 第二十三章 Win32PI函数 第二十...

    php使用函数pathinfo()、parse_url()和basename()解析URL

    本文主要介绍的是php使用函数pathinfo() 、parse_url()和basename()解析URL的实例代码,下面话不多说,直接来看代码 实例代码如下: 1、利用pathinfo解析URL &lt;? $test = pathinfo("http://localhost/index.php...

    php圣经 php bible

    URL 处理函数库 变量处理函数库 Vmailmgr 邮件处理函数库 WDDX 函数库 压缩文件函数库 XML 解析函数库 Session 函数库 GNU 记录函数库 FTP 文件传输函数库 MCAL 模块日历存取函数库 第五章 范例程序 访客...

    即用即查PHP函数参考手册.part1.rar

    第十六章 URL函数 第十七章 Mail函数 第十八章 HTTP函数 第十九章 FTP函数 第二十章 Network函数 第六篇 图象处理篇 第二十一章 Exif函数 第二十二章 Image函数 第七篇 Win32函数篇 第二十三章 Win32PI函数 第二十...

    探讨:parse url解析URL,返回其组成部分

    parse_url(PHP 4, PHP 5)parse_url — 解析 URL,返回其组成部分说明array parse_url ( string $url )本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。 本函数不是用来验证给定 URL 的...

    php中解析带中文字符的url函数分享

    这里写了一个小函数来解决这个问题,只是限于在path中进行解析而已,涉及到的相关函数使用大家可以查看手册就行。 复制代码 代码如下: function urlConvert($url){   $pathArr = array();   $modules = parse_...

    php使用parse_url和parse_str解析URL

    PHP中有两个方法可以用来解析URL,分别是parse_url和parse_str。 parse_url 解析 URL,返回其组成部分 mixed parse_url ( string $url [, int $component = -1 ] ) 本函数解析一个 URL 并返回一个关联数组,包含在 ...

    解析php中的escape函数

    采用js对URL中的汉字进行escape编码。...PHP%u5F00%u53D1%u8D44%u6E90%u7F51生成了这样的效果, 很明显用PHP的urldecode()或者base64_decode... 解决方法, 用PHP写一个反解函数: 复制代码 代码如下:function js_unescape

    php常用的url处理函数总结

    解析url并输出返回数组,url 专用格式字符串还原成普通字符串. 语法:string rawurldecode(string str); 返回值:字符串 函数种类:编码处理 内容说明:本函数将字符串解码,从 url 的字符串专用格式解成普通字符

    PHP bible(PHP圣经)中文版

    URL 处理函数库 变量处理函数库 Vmailmgr 邮件处理函数库 WDDX 函数库 压缩文件函数库 XML 解析函数库 Session 函数库 GNU 记录函数库 FTP 文件传输函数库 MCAL 模块日历存取函数库 第五章 范例程序 访客...

    php中使用parse_url()对网址进行解析的实现代码(parse_url详解)

    PHP 解析 URL函数: parse_url详解 parse_url — 解析 URL,返回其组成部分 说明 array parse_url ( string $url ) 本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。 本函数不是用来验证...

    urling:PHP中的URL解析器和构造函数

    URL解析器和PHP中的构造函数。 安装 要安装,请在终端中运行以下命令: composer require ismaxim/urling 用法 开始 # Url parser use Ismaxim \ Urling \ Urling ; $ urling = new Urling ( ...

    PHP bible(PHP圣经).CHM

    URL 处理函数库 变量处理函数库 Vmailmgr 邮件处理函数库 WDDX 函数库 压缩文件函数库 XML 解析函数库 Session 函数库 GNU 记录函数库 FTP 文件传输函数库 MCAL 模块日历存取函数库 第五章 范例程序 访客...

Global site tag (gtag.js) - Google Analytics