PHP: получить строки между строкой A и строкой B (нужно искать несколько строк)

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

$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) } 

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

Solutions Collecting From Web of "PHP: получить строки между строкой A и строкой B (нужно искать несколько строк)"

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

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

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

 preg_match_all('/nothread([0-9]{5,})/', $string, $matches); 

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