Не могу вытащить часть ссылок: <a class='test ' href='/test.php?item=1vsdu6y'>Просмотр</a> <a class='test ' href='/test.php?item=2estt3x'>Просмотр</a> <a class='test ' href='/test.php?item=3rshj8u'>Просмотр</a> Использовал такое рег. выражение: Код (Text): preg_match_all("#(?<=\/test.php\?item=)\d+(?='>)#i", $out, $part_url); По идеи должно подцепиться(но не работает): 1vsdu6y 2estt3x 3rshj8u Хотя, лучше было бы подцепить это: /test.php?item=1vsdu6y /test.php?item=2estt3x /test.php?item=3rshj8u Примерно как то так должно быть? Код (Text): preg_match_all("#(?<='test ' href=')\d+(?='>)#i", $out, $part_url);
PHP: <?php $str = "<a class='test' href='/test.php?item=1vsdu6y'>Просмотр</a>"; preg_match('/href=\'(\/test\.php\?item=\w+)\'/s', $str, $matches); echo matches[1]; ?>
Jampire Дело не в этом, ваша регулярка работает но она захватывает href='/test.php?item=1vsdu6y' А как захватить только /test.php?item=1vsdu6y ?
вместо echo matches[1]; поставь echo '<pre>'.print_r($matches, true).'</pre>'; и увидишь Ъ. а если не увидишь - значит не дано. аминь
Gromo Array ( [0] => Array ( [0] => 'test ' href='/test.php?item=1vsdu6y' [1] => 'test ' href='/test.php?item=2estt3x' [2] => 'test ' href='/test.php?item=3rshj8u' ) [1] => Array ( [0] => /deal.php?item=1vsdu6y [1] => /deal.php?item=2estt3x [2] => /deal.php?item=3rshj8u ) ) Подцепляются 3 нужные ссылки preg_match_all('/\'test \' href=\'(\/test\.php\?item=\w+)\'/s', $str, $matches); echo $matches[1][1]; - ничего не выводит :-( А должно выводится - /deal.php?item=2estt3x
ну, у меня всё прекрасно выводится: PHP: <?php $str = "<a class='test ' href='/test.php?item=1vsdu6y'>Просмотр</a> <a class='test ' href='/test.php?item=2estt3x'>Просмотр</a> <a class='test ' href='/test.php?item=3rshj8u'>Просмотр</a>"; preg_match_all('/href=\'(\/test\.php\?item=\w+)\'/s', $str, $matches); echo '<pre>'.print_r($matches, true).'</pre>'; echo $matches[1][1]; ?>
Странно все это... PHP: <?php $str = "<a class='test' href='/test.php?item=1vsdu6y'>Просмотр</a>"; preg_match('/href=\'(\/test\.php\?item=\w+)\'/s', $str, $matches); echo "<pre>"; print_r($matches); echo "</pre>"; ?> Код (Text): Array ( [0] => href='/test.php?item=1vsdu6y' [1] => /test.php?item=1vsdu6y ) Явно проблемы у вас. Показывайте весь код скрипта.