这是我想做的事的一个例子。
对此进行转换:
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标签内外的文本,而又不破坏标签的位置。这是一个非常简单的示例,但实际应用程序可能涉及更复杂的嵌套标签。
谢谢!
答案 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”。