我需要加载HTML(可能带有DOMDocument loadHTML),然后将所有单词A替换为单词B,但是没有任何内容存在于HTML标记中。用HTML中的另一个替换字符串,但在HTML标记和属性中没有替换PHP
这意味着,在下面的html中,如果我们需要用'TEST'替换'test'这个词,它将只替换文本'this is a test','这是一个测试'并且将保持id完整=“测试”
我需要加载HTML(可能带有DOMDocument loadHTML),然后将所有单词A替换为单词B,但是没有任何内容存在于HTML标记中。用HTML中的另一个替换字符串,但在HTML标记和属性中没有替换PHP
这意味着,在下面的html中,如果我们需要用'TEST'替换'test'这个词,它将只替换文本'this is a test','这是一个测试'并且将保持id完整=“测试”
不能足够DOM文档的获取:)
$d = new DOMDocument;
$d->loadHTML($html);
$x = new DOMXPath($d);
foreach ($x->query('//text()') as $node) {
$node->nodeValue = str_replace('test', 'TEST', $node->nodeValue);
}
echo $d->saveHTML();
不知道是否有任何性能损失总是做更换nodeValue
;否则,请用循环内容:
$s = str_replace('test', 'TEST', $node->nodeValue, $count);
if ($count) {
$node->nodeValue = $s;
}
完美!非常感谢! –
include("simple_html_dom.php");
...
$html = '
<html>
<head></head>
<body>
<div id="test"> this is a test </div>
</body>
</html>
';
$data = str_get_html($html);
$find = $data->find("div[id='test']",0);
$find->innertext = str_replace("test","TEST",$find->innertext);
$data = $data->save();
echo $data;
如果你想利用在正则表达式一个尝试,看看这个答案replace all "foo" between two HTML tags using REGEX (PHP code)
有什么问题在这里,究竟? – BenLanc
如果您知道如何加载html,如何处理并保存,您知道如何解决您的问题。我们可以做什么? – Leri
你想在服务文档时动态地使用PHP吗? –