拆分html代码标签和内容 - php

有谁比我对正则表达式有更多的了解,是否知道如何拆分html代码,以便将所有标记和所有单词都分开,即。

<p>Some content <a href="www.test.com">A link</a></p>

像这样分开:

array = { [0]=>"<p>",
          [1]=>"Some",
          [2]=>"content",
          [3]=>"<a href='www.test.com'>,
          [4]=>"A",
          [5]=>"Link",
          [6]=>"</a>",
          [7]=>"</p>"

到目前为止,我一直在使用preg_split,或者已经成功地设法通过空格将字符串分割或通过标签进行分割-但是当我需要将此内容分割为所有内容时,所有内容都在一个数组元素中。

有人帮我吗?

参考方案

在这种情况下,不应使用preg_split。尝试preg_match_all:

$text = '<p>Some content <a href="www.test.com">A link</a></p>';
preg_match_all('/<[^>]++>|[^<>\s]++/', $text, $tokens);
print_r($tokens);

输出:

Array
(
    [0] => Array
        (
            [0] => <p>
            [1] => Some
            [2] => content
            [3] => <a href="www.test.com">
            [4] => A
            [5] => link
            [6] => </a>
            [7] => </p>
        )

)

我假设您在示例中忘记了'A'中的'A link'

意识到当您的HTML包含并不是标记的开始或结束时,正则表达式会把事情搞砸! (因此出现警告)

php Singleton类实例将在多个会话中保留吗? - php

举一个简单的例子,如果我想计算一个不使用磁盘存储的脚本的命中次数,我可以使用静态类成员来执行此操作吗?用户1:<?php $test = Example::singleton(); $test->visits++; ?> 用户2:<?php $test = Example::singleton(); $test->visits+…

PHP-复选框组 - php

我有一个需要发布的表单复选框组。<input type="checkbox" value="true" checked name="chk0[]"> <input type="checkbox" value="false" name=…

PHP中奇怪的sprintf行为 - php

我试图做sprintf("<%s>", "Sat");,但是什么也没出现。当您删除小于符号时,它将再次开始工作。任何人都经历过这种行为以及是否会发生这种情况?因为我认为这是一个错误。您甚至可以在这里使用printf .....获得相同的结果。http://writecodeonline.com/php/ 参…

PHP:如何从JSON数组获取属性? - php

我有以下JSON数组:使用PHP,如何从上面的JSON数组中获取geometery->location->lat&lng值?例如(伪代码):<?php $json = { "status": "OK", "results": [ { "types": [ �…

PHP:填写数组中的“空白” - php

我有一个php数组(通过表单中的复选框值获取-您知道复选框仅在未设置时显示在_POST变量中)。Array ( [2] => 0,2 [3] => 0,3 ) 我需要一种方法来“填补” 0-5之间的差距。所以上面看起来像(用'-1'填充空白。我尝试用填充有'-1'的数组array_merge(),但这没用。Array ( [0] => -1…