替换HTML标签内外的文本

时间:2018-07-06 16:48:52

标签: php html

这是我想做的事的一个例子。

对此进行转换:

 This is my sample <span id="my_id"><strong>text</strong></span> for Stackoverflow.

进入:

 I've replaced the text <span id="my_id"><strong>with something</strong></span> else.

换句话说,我想替换HTML标签内外的文本,而又不破坏标签的位置。这是一个非常简单的示例,但实际应用程序可能涉及更复杂的嵌套标签。

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以使用PHP简单HTML DOM解析器

// Create DOM from string
$html = str_get_html('<div id="hello">Hello</div><div id="world">World</div>');

$html->find('div', 1)->class = 'bar';

$html->find('div[id=hello]', 0)->innertext = 'foo';

echo $html; // Output: <div id="hello">foo</div><div id="world" class="bar">World</div>

根据您的情况:

$html = str_get_html('This is my sample <span id="my_id"><strong>text</strong></span> for Stackoverflow.');

$html->find('span[id=my_id]', 0)->innertext = 'with something';

对于标记周围的文本,您可以使用以下方法遍历每个文本:

$html->find('text')

这将返回元素数组,“这是我的示例”,“ yourhtmlcode ....”和“ for stackoverflow”。