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 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)