使用PHP将特殊标记之间的HTML代码提取到数组中

时间:2015-02-13 16:48:54

标签: php html html-content-extraction

使用下面的示例代码,我想提取每个<<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>'
)

希望这是有道理的。

非常感谢任何帮助。提前谢谢。

2 个答案:

答案 0 :(得分:2)

使用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>';

?>

显示页面的源代码,您将看到所有想要的内容:)(,...)

答案 1 :(得分:1)

您可以从字符串的开头和结尾剥离<<END>><<BEGIN>>,然后在<<END>><<BEGIN>>上展开。

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

(你可以使它更优雅,但它显示你需要完成的任务。)