検索
ホームページphp教程php手册php 从url中提取参数名和参数值实例

如果我使用的是动态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ヘンタイを無料で生成します。

ホットツール

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。