doulan3436 2014-08-20 10:23
浏览 44
已采纳

如何使用简单的html dom用链接替换关键字

how to find hello keyword in a html content inside <p> tag directly (not sub tags e.g. <a> tag) and replace it with a link

i dont want alter the html attributes

HTML:

<p>hello world
    <a href="hello.html">hello</a>
</p>
<img src="hello.png" alt="image" />

I need an output like this:

<p><a href="hello">hello</a> world
    <a href="hello.html">hello</a>
</p>
<img src="hello.png" alt="image" />

not this:

<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" />

What i tried

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;
  • 写回答

2条回答 默认 最新

  • doutao4480 2014-08-21 03:04
    关注

    You should be able to do:

    foreach($html->find('text') as $text){
      if($text->parent->tag != 'p') continue;
      $text->outertext = str_replace($searchArray, $replaceArray, $text->outertext);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 bat批处理,关于数据复制问题
  • ¥50 同步两个不同结果的array中某些属性
  • ¥15 悬赏15远程操控解决问题
  • ¥15 CST复制的模型无法单独修改参数?
  • ¥15 前端页面想做个定时任务,但是使用requestAnimationFrame,setinterval和settimeout都不行
  • ¥15 根据以下文字信息,做EA模型图
  • ¥15 删除虚拟显示器驱动 删除所有 Xorg 配置文件 删除显示器缓存文件 重启系统 可是依旧无法退出虚拟显示器
  • ¥15 vscode程序一直报同样的错,如何解决?
  • ¥15 关于使用unity中遇到的问题
  • ¥15 开放世界如何写线性关卡的用例(类似原神)