Как разобрать определенные строки в php? - PullRequest
0 голосов
/ 13 февраля 2012

В приведенном ниже URL-адресе я пытаюсь разобрать в строке все, что появляется после "scid =" и "pid =", в 2 разные переменные.Два числа, связанные с pid и scid, не имеют фиксированного количества цифр каждый раз (они меняются).Я подхожу к проблеме следующим образом: найдите местоположение "pid =" и проанализируйте строку после этой локации до следующей "&".Как мне это сделать?

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

Ответы [ 2 ]

6 голосов
/ 13 февраля 2012
parse_str(parse_url($url, PHP_URL_QUERY), $values);

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

См. http://php.net/parse_str и http://php.net/parse_url.

0 голосов
/ 13 февраля 2012

Если этот 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.

?>
...