在下面的URL中,我试图将“scid =”和“pid =”之后出现的所有字符串解析为2个不同的变量。与pid和scid相关联的两个数字每次都没有固定的位数(它们会改变)。我正在通过以下方式解决问题:找到“pid =”的位置并从此位置之后解析出字符串,直到下一个“&”。我该怎么做?
http://oldnavy.gap.com/browse/product.do?cid=78425&vid=1&pid=113855&scid=113855012
答案 0 :(得分:6)
parse_str(parse_url($url, PHP_URL_QUERY), $values);
echo $values['scid'];
echo $values['pid'];
答案 1 :(得分:0)
如果该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.
?>