如何在php中解析定义的字符串?

时间:2012-02-13 03:38:47

标签: php string parsing

在下面的URL中,我试图将“scid =”和“pid =”之后出现的所有字符串解析为2个不同的变量。与pid和scid相关联的两个数字每次都没有固定的位数(它们会改变)。我正在通过以下方式解决问题:找到“pid =”的位置并从此位置之后解析出字符串,直到下一个“&”。我该怎么做?

http://oldnavy.gap.com/browse/product.do?cid=78425&vid=1&pid=113855&scid=113855012

2 个答案:

答案 0 :(得分:6)

parse_str(parse_url($url, PHP_URL_QUERY), $values);

echo $values['scid'];
echo $values['pid'];

请参阅http://php.net/parse_strhttp://php.net/parse_url

答案 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.

?>