цикл для возврата всех совпадений

#php #loops #foreach

#php #циклы #foreach

Вопрос:

С помощью следующего кода я сопоставляю строку из 9 цифр. Я успешно возвращаю первый экземпляр без использования цикла, но я хотел бы просмотреть всю страницу и вернуть каждую 9-значную строку, и пока он этого не делает. Он возвращает только NULL .

 $source = file_get_contents($url);
preg_match('/cd=([0-9]{9})/', $source, $match);

foreach ($match[1] as $output)
{
    echo $output;
}
  

Комментарии:

1. Не забывайте о d ярлыке 🙂

Ответ №1:

Используйте preg_match_all .

Из preg_match документации:

preg_match() возвращает количество совпадений с шаблоном. Это будет либо 0 раз (совпадений нет), либо 1 раз, потому что preg_match() прекратит поиск после первого совпадения. preg_match_all() наоборот, будет продолжаться до тех пор, пока не дойдет до конца темы. preg_match() возвращает FALSE, если произошла ошибка.

$match Массив может выглядеть по-другому, поэтому вам придется настроить свой цикл.