首页 php教程 php手册 php 从url中提取参数名和参数值实例

php 从url中提取参数名和参数值实例

May 25, 2016 pm 04:44 PM

如果我使用的是动态url后面会带上如a.php?a=1&b=2这种,那么我要提取a,b参数名与参数值要怎么操作呢,下面我来介绍一个自己用的实例.

在已知参数名的情况下,获取参数值,使用正则表达式能很容易做到,js的实现方法如下,代码如下:

<?php
function getValue(url, name) {
    var reg = new RegExp(&#39;(?|&)&#39; + name + &#39;=([^&?]*)&#39;, &#39;i&#39;);
    var arr = url . match(reg);
    if (arr) {
        return arr[2];
    }
    return null;
}
?>
登录后复制

如果想获取所有的参数名和其对应的值,同样也可以使用正则表达式的方法,js实现方法,代码如下:

<?php
function getKeyValue(url) { 
 var result = {}; 
 var reg = new RegExp(&#39;([?|&])(.+?)=([^&?]*)&#39;, &#39;ig&#39;); 
 var arr = reg.exec(url); 
 while (arr) { 
  result[arr[2]] = arr[3]; 
  arr = reg.exec(url); 
 } 
 return result; 
}
?>
登录后复制

注意在js中用于匹配的还有一个叫match,match是字符串的方法,而exec是RegExp对象的方法,使用字符串的match方法,同时正则表达式指定为全局匹配,那么正则表达式中的分组将没有用,返回的结果是所有匹配正则表达式的子字符串,exec方法没有使用全局匹配标志时,返回的时间第一个匹配的子字符,如果使用了全局匹配标志,第一次执行从头开始匹配符号的字符串,再次调用,就从上一次匹配结果后开始匹配.

下面提供php的实现方法,代码如下:

<?php
function getKeyValue($url) {
    $result = array();
    $mr = preg_match_all(&#39;/(?|&)(.+?)=([^&?]*)/i&#39;, $url, $matchs);
    if ($mr !== FALSE) {
        for ($i = 0; $i < $mr; $i++) {
            $result[$matchs[2][$i]] = $matchs[3][$i];
        }
    }
    return $result;
}
?>
登录后复制

php的preg_match_all方法把匹配的结果存放在第三个指定的参数中,是一个二维数组,第一维度是分组信息的数组,即第一个数组存放的是所有匹配的完整字符串,第二个数组存放的是第一个()对应的值得,第二维度是分组的值.


永久链接:

转载随意!带上文章地址吧。

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)