doufu8588 2012-01-30 09:00
浏览 27

PHP - 在字符串中的任何<img>标记周围的'wrap'<a>标记

I need to take any img tag within a string, and add an a tag around it.

E.g.

$content= "Click for more info <img src="\http://www.domain.com/1.jpg\"" />";

Would need to be replaced with

"Click for more info <a href=\"http://www.domain.com/1.jpg\"<img src="\http://www.domain.com/1.jpg\"" /></a>";

My current script is:

$content = $row_rsGetStudy['content'];

$doc = new DOMDocument();
$doc->loadHTML($content);
$imageTags = $doc->getElementsByTagName('img');

foreach($imageTags as $tag) {
    $content = preg_replace("/<img[^>]+\>/i", "<a href=\"$tag\"><img src=\"$tag\" /></a>", $content); 
}

echo $content

This gives me the following error: Catchable fatal error: Object of class DOMElement could not be converted to string

Any ideas on where I'm going wrong?

  • 写回答

4条回答 默认 最新

  • drhg24275 2012-01-30 09:08
    关注

    With DOM methods, something like this (untested, debug yourself ;P )

    foreach($imageTags as $tag) {
        $a = $tag->ownerDocument->createElement('a');
        $added_a = $tag->parentNode->insertBefore($a,$tag);
        $added_a->setAttribute('href',$tag->getAttribute('src'));
        $added_a->appendChild($tag);
    }
    
    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图