PHP: получить строки между строкой A и строкой B (нужно искать несколько строк) - PullRequest
1 голос
/ 07 февраля 2011

У меня есть одна большая строка, которая выглядит так:

$string = '<span id="nothread307693965">blabla here is a lot of text blabla<span id="nothread5248574987">blabla even more text<span id="nothread9754541">';

Теперь мне нужно получить все числа из потоков. ('' -> '307693965'). Для этого мне нужно поиск между строк в PHP, который должен вернуть все числа в массиве.

Вывод должен быть:

array(3) {
  [0]=>
  int(307693965)
  [1]=>
  int(5248574987)
  [2]=>
  int(9754541)
}

Это место, где я застрял, пожалуйста, помогите мне!

Ответы [ 2 ]

3 голосов
/ 07 февраля 2011

Вы можете использовать строковые функции. Но для целей извлечения рекомендуется использовать простое регулярное выражение для минимальной проверки структуры:

 preg_match_all('/[\s]id="nothread(\d+)"/', $html, $result);
 $numbers = $result[1];

\s означает пробел. И \d+ соответствует десятичным числам. Скобки ( ) используются для захвата, и поскольку они являются первыми, их содержимое будет отображаться в индексе [1] массива результатов.

0 голосов
/ 07 февраля 2011
preg_match_all('/nothread([0-9]{5,})/', $string, $matches);

$matches теперь содержит то, что вы хотели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...