Используйте PHP для извлечения HTML-кода между специальными тегами в массив

Используя приведенный ниже пример кода, я хочу извлечь весь код между <<BEGIN>> а также <<END>> пометить и добавить извлеченный код в массив для дальнейшей обработки позже.

<?php
$html = '<<BEGIN>><div>Some text goes here...</div><<END>><<BEGIN>><table border="0"><tr><td>Table cell text goes here</td></tr></table><<END>><<BEGIN>><ul><li>My string</li><li>Another string</li></ul><<END>>';
?>

Конечный результат должен выглядеть так:

Array (
[0] => '<div>Some text goes here...</div>'
[1] => '<table border="0"><tr><td>Table cell text goes here</td></tr></table>'
[2] => '<ul><li>My string</li><li>Another string</li></ul>'
)

Надеюсь, это имеет смысл.

Будем очень благодарны любой помощи. Заранее спасибо.

0

Решение

Используйте для этого функцию pretg_match_all ().

<?php

$html = '<<BEGIN>><div>Some text goes here...</div><<END>><<BEGIN>><table border="0"><tr><td>Table cell text goes here</td></tr></table><<END>><<BEGIN>><ul><li>My string</li><li>Another string</li></ul><<END>>';

preg_match_all("/<<BEGIN>>(.*)<<END>>/", $html, $result);

echo '<pre>';
print_r($result[1]);
echo '</pre>';

?>

Покажите исходный код страницы и вы увидите все, что хотели 🙂 (, …)

2

Другие решения

Вы можете раздеть <<END>> а также <<BEGIN>> от начала и до конца строки, а затем взорваться на <<END>><<BEGIN>> ,

$html = substr($html, 9);
$htmlleng = strlen($html) - 7;
$html = substr($html, 0, $htmlleng);
$myarray = explode('<<END>><<BEGIN>>', $html)

(Вы можете сделать это более элегантно, но это показывает, что вам нужно сделать.)

1

По вопросам рекламы [email protected]