如何直接在hello
标记内的html内容中查找<p>
个关键字(不是子标记,例如<a>
标记)并将其替换为链接
我不想改变html属性
HTML:
<p>hello world
<a href="hello.html">hello</a>
</p>
<img src="hello.png" alt="image" />
我需要这样的输出:
<p><a href="hello">hello</a> world
<a href="hello.html">hello</a>
</p>
<img src="hello.png" alt="image" />
不是这个:
<p><a href="hello">hello</a> world
<a href="<a href="hello">hello</a>.html">hello</a>
</p>
<img src="<a href="hello">hello</a>.png" alt="image" />
我尝试了什么
include('inc/simple_html_dom.php');
// Create a DOM object
$html = new simple_html_dom();
// Load HTML from a string
$dom = '
<p>hello world
<a href="hello.html">hello</a>
</p>
<img src="hello.png" alt="image" />
';
$html->load($dom);
foreach($html->find('p') as $p)
{
$p->innertext = str_replace($searchArray, $replaceArray, $p->innertext);
}
echo $html;
答案 0 :(得分:1)
你应该可以这样做:
foreach($html->find('text') as $text){
if($text->parent->tag != 'p') continue;
$text->outertext = str_replace($searchArray, $replaceArray, $text->outertext);
}
答案 1 :(得分:0)
在这种特殊情况下,如果你设置
$searchArray = 'hello '; // with a blank space after hello
它应该按你的意愿工作