все верно, код рабочий, но только для
game.php?u=43&s=70939191&r=6784, в остальных случаях возвращает пустой результат, а чтобы избегать этого
echo надо вывести из цикла
$count=preg_match_all('~<a[^>]+href[\x20]?=[\x20\x22\x27]?([^\x20\x22\x27\x3E]+)[\x20\x22\x27]?[^>]*>~i', $out, $matches);
for($i=0; $i<$count; $i++)
{
if(stristr($matches[1][$i],"game"))
{
$s= parse_url($matches[1][$i],PHP_URL_QUERY);
$url=$s;
$x=explode("&",$url);
$y=explode("=",$x[0]);
$id=$y[1];
$z=explode("=",$x[1]);
$sess=$z[1];
$v=explode("=",$x[2]);
$rand=$v[1];
}
}
echo '<br/>ид='.$id.'<br/> сессия='.$sess.'<br/> антикэш='.$rand.'<br/>';
результат
ид=43
сессия=36491238
антикэш=12320
Однако, если нет необходимость в дальнейшем отдельно использовать значения
id, sess, random, то можно сделать еще проще, использовать сам
$url для рисования ссылок
$url=mb_substr($url, 0, -1);//удаляем последний амперсанд
echo 'chat.php?'.$url.'<br/>';
echo 'profile.php?'.$url.'<br/>';
echo 'setting.php?'.$url.'<br/>';
результат
chat.php?u=43&s=36491238&r=12320
profile.php?u=43&s=36491238&r=12320
setting.php?u=43&s=36491238&r=12320
З.Ы. с уважением СТО
Изменил: bab-nike (10.03.2015 / 01:20)