国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

php 從url中提取參數名和參數值實例

2024-05-04 21:58:06
字體:
來源:轉載
供稿:網友

如果我使用的是動態url后面會帶上如a.php?a=1&b=2這種,那么我要提取a,b參數名與參數值要怎么操作呢,下面我來介紹一個自己用的實例.

在已知參數名的情況下,獲取參數值,使用正則表達式能很容易做到,js的實現方法如下,代碼如下:

  1. function getValue(url, name) { 
  2.  var reg = new RegExp('(/?|&)' + name + '=([^&?]*)''i'); 
  3.  var arr = url.match(reg); 
  4.  if (arr) { 
  5.   return arr[2]; 
  6.  } 
  7.  return null; 

如果想獲取所有的參數名和其對應的值,同樣也可以使用正則表達式的方法,js實現方法,代碼如下:

  1. function getKeyValue(url) { 
  2.  var result = {}; 
  3.  var reg = new RegExp('([/?|&])(.+?)=([^&?]*)''ig'); 
  4.  var arr = reg.exec(url); 
  5.  while (arr) { 
  6.   result[arr[2]] = arr[3]; 
  7.   arr = reg.exec(url); 
  8.  } 
  9.  return result; 

注意在js中用于匹配的還有一個叫match,match是字符串的方法,而exec是RegExp對象的方法,使用字符串的match方法,同時正則表達式指定為全局匹配,那么正則表達式中的分組將沒有用,返回的結果是所有匹配正則表達式的子字符串,exec方法沒有使用全局匹配標志時,返回的時間第一個匹配的子字符,如果使用了全局匹配標志,第一次執行從頭開始匹配符號的字符串,再次調用,就從上一次匹配結果后開始匹配.

下面提供php的實現方法,代碼如下:

  1. function getKeyValue($url) { 
  2.  $result = array(); 
  3.  $mr = preg_match_all('/(?|&)(.+?)=([^&?]*)/i'$url$matchs); 
  4.  if ($mr !== FALSE) { 
  5.   for ($i = 0; $i < $mr$i++) { 
  6.    $result[$matchs[2][$i]] = $matchs[3][$i]; 
  7.   } 
  8.  } 
  9.  return $result

php的preg_match_all方法把匹配的結果存放在第三個指定的參數中,是一個二維數組,第一維度是分組信息的數組,即第一個數組存放的是所有匹配的完整字符串,第二個數組存放的是第一個()對應的值得,第二維度是分組的值.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 石嘴山市| 峨眉山市| 凭祥市| 若羌县| 南昌市| 广元市| 犍为县| 凤阳县| 信宜市| 布拖县| 延边| 马公市| 沧州市| 成安县| 元氏县| 宁河县| 外汇| 潼南县| 西峡县| 西乌珠穆沁旗| 集安市| 蓬溪县| 通渭县| 建湖县| 梁山县| 玉树县| 乌鲁木齐县| 双流县| 友谊县| 庐江县| 张家界市| 莲花县| 桐柏县| 株洲市| 聊城市| 台湾省| 遂平县| 志丹县| 翁牛特旗| 江津市| 塔城市|