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

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

 代码如下 复制代码

function getValue(url, name) {
 var reg = new RegExp('(\?|&)' + name + '=([^&?]*)', 'i');
 var arr = url.match(reg);

 if (arr) {
  return arr[2];
 }

 return null;
}

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

 代码如下 复制代码

function getKeyValue(url) {
 var result = {};
 var reg = new RegExp('([\?|&])(.+?)=([^&?]*)', 'ig');
 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的实现方法:

 代码如下 复制代码

function getKeyValue($url) {
 $result = array();
 $mr = preg_match_all('/(?|&)(.+?)=([^&?]*)/i', $url, $matchs);

 if ($mr !== FALSE) {
  for ($i = 0; $i < $mr; $i++) {
   $result[$matchs[2][$i]] = $matchs[3][$i];
  }
 }

 return $result;
}

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

时间: 2024-08-18 14:02:10

php 从url中提取参数名和参数值实例的相关文章

从URL中提取参数与将对象转换为URL查询参数的实现代码_javascript技巧

一.从URL中提取参数 有下列字符串: var linkURL = 'http://localhost:8080/String/string_6.html?昵称=小西山子&age=24#id1'; 对于一个真实的URL地址,可以用js来读取location中的相关信息来获得某些信息,下面列举一些: 复制代码 代码如下: location.origin : http://localhost[域] location.pathname : /project_js/Javascript/js_basic

Java获取代码中方法参数名信息的方法_java

前言 大家都知道随着java8的使用,在相应的方法签名中增加了新的对象Parameter,用于表示特定的参数信息,通过它的getName可以获取相应的参数名.即像在代码中编写的,如命名为username,那么在前台进行传参时,即不需要再编写如@Parameter("username")类的注解,而直接就能进行按名映射. 如下的代码参考所示: public class T { private interface T2 { void method(String username, Stri

php解析url并得到url中的参数及获取url参数的四种方式_php实例

下面一段代码是php解析url并得到url中的参数,代码如下所示: <?php $url = 'http://www.baidu.com/index.php?m=content&c=index&a=lists&catid=6&area=0&author=0&h=0&region=0&s=1&page=1'; $arr = parse_url($url); var_dump($arr); $arr_query = convertU

PHP解析URL并得到URL中的参数

<?php //例举一个URL格式的字符串: $str = 'http://test.com/testdir/index.php?param1=10&param2=20&param3=30&param4=40&param5=50&param6=60'; //1 用parse_url解析URL,此处是$str $arr = parse_url($str); var_dump($arr); //2 将URL中的参数取出来放到数组里 $arr_query = con

Jsp页面URL中传递参数乱码的方法

  Jsp页面在URL中传递参数会出现乱码 解决方法如下: 一.使用更改Tomcat的方法.这个方法简单,但是需要改动的地方是服务器软件级别的,如果稍微变动系统将无法正确转码,移植性不高. 1.来到tomcat目录,找到conf目录下的server.xml问价,打开,找到标签,在最后添加URIEncoding='GBK',效果如下: view plaincopy to clipboardprint? port="8080"maxThreads="150"minSpa

JS获取URL中的参数数据

 这篇文章主要介绍了JS获取URL中的参数数据,有需要的朋友可以参考一下   代码如下: function getParam(paramName) {     paramValue = "";     isFound = false;     if (this.location.search.indexOf("?") == 0 && this.location.search.indexOf("=") > 1) {      

javascript-js获取url中的参数乱码

问题描述 js获取url中的参数乱码 我的url为:test.jsp?lastname=杨涛 js是这么写的 window.onload=function(){ alert(GetQueryString("lastname")); } function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)","i&q

图片-有一个无效 SelectedValue,因为它不在项目列表中。 参数名: value

问题描述 有一个无效 SelectedValue,因为它不在项目列表中. 参数名: value 哪位大神遇到过这种问题啊 帮小弟看看吧

使用JavaScript获取URL中的参数(两种方法)_javascript技巧

本文给大家分享两种方法使用js获取url中的参数,其中方法二是使用的正则表达式方法,大家可以根据需要选择比较好的方法,废话不多说了,直接看详细介绍吧. 方法一: //取url参数 var type = request("type") function request() { var query = location.search; var paras = arguments[0]; if (arguments.length == 2) { query = arguments[1]; }