Допустим имеем страницу с ссылками <a href="details.php?id=1&hit=1">name</a> <a href="details.php?id=1&hit=1">name</a> <a href="details.php?id=1&hit=1">name</a> <a href="details.php?id=1&hit=1">name</a> $details = 'details.php?id=[id]&hit=1'; //Формируем массив с номерами торрентов $details_r = $details; $details_r = str_replace('?' , '\?' , $details_r); //Экранируем специальные символы $details_r = str_replace('.' , '\.' , $details_r); //Экранируем специальные символы $details_r = str_replace('&' , '\&' , $details_r); //Экранируем специальные символы $details_r = str_replace('[id]' , '(\d+)' , $details_r); //Меняем id // die('/"'.$details_r.'"\>(.*)\</i'); preg_match_all('/"'.$details_r.'"\>(.*)/i', $getBrowseFull, $setTorrentId); почему регулярка не ищет?
PHP: <?php $str = <<< EOL <a href="details.php?id=111&hit=1">name 1</a> <a href="details.php?id=222&hit=1">name 2</a> <a href="details.php?id=333&hit=1">name 3</a> <a href="details.php?id=444&hit=1">name 4</a> EOL; $details = 'details.php?id=[id]&hit=1'; $details_r = str_replace(array ('?', '.', '[id]') , array ('\?', '\.', '(\d+)') , $details); preg_match_all ('/"' . $details_r . '">(.*?)</i', $str, $m); print_r ($m); ?> Повнимательней с кодом. Лишние символы нет смысла "экранировать"