PHP - 如何替换图像上的空alt标记

时间:2009-10-16 11:42:22

标签: php image

当前图片看起来像

<img src="images/example.jpg" />

现在,如果img src没有alt="",则代码本身会替换图像

<img src="images/example.jpg" alt="" />

如何用php完成?

3 个答案:

答案 0 :(得分:4)

假设图像始终遵循该格式,最快的解决方案是:

$search = '/<img src="([^"]+)" \/>/';
$replace = '<img src="$1" alt="" />';
$code = preg_replace( $search, $replace, $code );

但是,我会质疑你的动机。添加空白alt标签是毫无意义的。

答案 1 :(得分:1)

以下是使用SimpleXML执行此操作的示例。

<?php

$html = '<html>
    <body>
        <img src="foo.jpg" />
    </body>
</html>';

$xml = new SimpleXMLElement($html);

foreach ($xml->xpath('//img') as $img) {
    if (!array_key_exists('alt', $img->attributes())) {
        $img->addAttribute('alt', '');
    }
}

echo $xml->asXML();

输出将是:

<?xml version="1.0"?>
<html>
    <body>
        <img src="foo.jpg" alt=""/>
    </body>
</html>

答案 2 :(得分:0)

如果它是有效的XML,你可以使用任何体面的XML解析器(例如SimpleXML),解组源,遍历树寻找图像标签,尝试查找属性并设置它(如果它不存在),以及再来一个xml ......

应该是10行左右...

祝你好运...... :)