在下面的URL中,我試圖將「scid =」和「pid =」之後出現的所有字符串解析爲2個不同的變量。與pid和scid相關的兩個數字每次都沒有固定的數字位數(它們會發生變化)。我以下面的方式處理問題:找到「pid =」的位置,並從該位置之後解析出字符串,直到下一個「&」。我該怎麼做呢?如何解析在PHP中定義的字符串?
http://oldnavy.gap.com/browse/product.do?cid=78425&vid=1&pid=113855&scid=113855012
在下面的URL中,我試圖將「scid =」和「pid =」之後出現的所有字符串解析爲2個不同的變量。與pid和scid相關的兩個數字每次都沒有固定的數字位數(它們會發生變化)。我以下面的方式處理問題:找到「pid =」的位置,並從該位置之後解析出字符串,直到下一個「&」。我該怎麼做呢?如何解析在PHP中定義的字符串?
http://oldnavy.gap.com/browse/product.do?cid=78425&vid=1&pid=113855&scid=113855012
parse_str(parse_url($url, PHP_URL_QUERY), $values);
echo $values['scid'];
echo $values['pid'];
如果該URL用於訪問當前頁面,請參閱先前有關$ _GET的註釋。
<?php
$pid=$_GET['pid'];
$scid=$_GET['scid'];
?>
如果以其他方式訪問,作爲一個字符串,這裏的一些代碼我已經使用前拉出兩段文字:
<?php
//assumes that the URL is the value of $string.
list($temp,$pid)=split('pid=',$string);
list($pid,$temp)=split('&',$pid);
list($temp,$scid)=split('scid=',$string);
list($scid,$temp)=split('&',$scid); //allows for other name/value pairs to follow.
?>
@deceze比我有更好的答案。在我回答之前,我讀得不夠近。我的第二個代碼塊適用於其他不是URL或查詢字符串的情況。 – TecBrat 2012-02-13 03:55:56
你會發現在$ _GET變量。 – CBusBus 2012-02-13 03:42:07