в PHP, как мне создать массив всех строк между двумя строками? - PullRequest
1 голос
/ 19 февраля 2010

У меня есть фрагмент текста, например:

<b>First content</b> followed by <b>second content</b>

ИЛИ

"First content" and then "second content"

И я хочу создать массив, который будет выглядеть: [1] => «Первое содержимое» [2] => «второй контент»

Из любого примера, где я получаю контент между двумя тегами.Я понял, как получить первые экземпляры, но не могу найти лучший способ сделать его рекурсивным.

Ответы [ 5 ]

2 голосов
/ 19 февраля 2010

в основном вам нужно регулярное выражение в форме "START (. +?) END", например

$a = "<b>First content</b> followed by <b>second content</b>";
preg_match_all("~<b>(.+?)</b>~", $a, $m);
print_r($m[1]);
2 голосов
/ 19 февраля 2010

Если вы знаете, что именно находится между «первым контентом» и «вторым контентом», используйте explode:

http://php.net/manual/en/function.explode.php

, например

$values = explode("followed by", $yourtext);

(используйте "strip_tags" для ваших элементов массива, если вы просто хотите открытый текст)

2 голосов
/ 19 февраля 2010

Если вы хотите извлечь весь контент между определенными тегами, лучше всего использовать HTML DOM Parser, например simplehtmldom .

0 голосов
/ 19 февраля 2010
$string="<b>First content</b> followed by <b>second content</b>";
$s = explode("followed by", strip_tags($string));
print_r($s);
0 голосов
/ 19 февраля 2010
<?php

$yourArray = split(" followed by ", $yourString);

?>

Пока у вас есть один и тот же текст между каждым значением, которое вы хотите разбить на массив, вы можете использовать этот пример.

...