dongzhong5573 2013-07-09 17:51
浏览 71
已采纳

如何在PHP中使用正则表达式替换HTML中的ALT和TITLE文本

I have a html content as listed below.

<img title="" style="float: none;margin-right: 10px;margin-top: 10px;margin-bottom: 10px;" src="http://www.mbatious.com/sites/default/files/imagecache/Large/Distchart.jpg" class="imagecache-Large" alt="">

I would like to replace the empty alt and title text with the name of the image file (Distchart). How to do this using preg_replace in php? After performing replace operation, the html should be like

<img title="Distchart" style="float: none;margin-right: 10px;margin-top: 10px;margin-bottom: 10px;" src="http://www.mbatious.com/sites/default/files/imagecache/Large/Distchart.jpg" class="imagecache-Large" alt="Distchart">
  • 写回答

3条回答 默认 最新

  • dpkrbe395930 2013-07-09 18:15
    关注

    As Maxim Kumpan suggests it, the best way is to use the dom:

    $doc = new DOMDocument();
    @$doc->loadHTML($html);
    $imgs = $doc->getElementsByTagName('img');
    foreach($imgs as $img) {
        if (preg_match('~[^/]+(?=\.(?>gif|png|jpe?+g)$)~i', $img->getAttribute('src'), $match)) {
            $name = $match[0];
            if ($img->getAttribute('alt')=='') $img->setAttribute('alt', $name);
            if ($img->getAttribute('title')=='') $img->setAttribute('title', $name);
        }
    }
    $result = $doc->saveHTML();
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果
  • ¥15 matlab图像高斯低通滤波
  • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
  • ¥15 钢筋实图交点识别,机器视觉代码
  • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
  • ¥50 400g qsfp 光模块iphy方案
  • ¥15 两块ADC0804用proteus仿真时,出现异常