我想在字符串中替换图像上的空alt标签。我有一个字符串,其中包含窗帘页面的所有文本。在文本中也有图像,其中很多都有空标签(旧数据),但大多数时候它们都有标题标签。例如:<img src="assets/img/test.png" alt="" title="I'am a title tag" width="100" height="100" />
我想要的:<img src="assets/img/test.png" alt="" title="I'am a title tag" alt="I'am a title tag" width="100" height="100" />
于是:我需要找到字符串中的所有图像,循环遍历图像,找到标题标签,找到alt标签,并将空的alt标签替换为有值的标题标签。
这就是我所尝试的:
preg_match_all('/<img[^>]+>/i',$return, $text);
if(isset($text)) {
foreach( $text as $itemImg ) {
foreach( $itemImg as $item ) {
$array = array();
preg_match( '/title="([^"]*)"/i', $item, $array );
if(isset($array[1])) {
//So $array[1] is a title tag, now what?
}
}
}
}
字符串
我不知道有没有完成的代码,我认为必须有一个更容易解决这个问题。建议?
5条答案
按热度按时间fsi0uk1n1#
使用
Regex
不是一个好方法,你应该使用DOMDocument
来解析HTML
。这里我们查询那些alt
属性为空的元素,这实际上是有问题的。Try this code snippet here
字符串
u0sqgete2#
也许你可以使用JavaScript和jquery来做这类事情,比如:
字符串
希望它能帮助
祝你好运
y53ybaqx3#
这里需要的是一个HTML解析器库,它可以操作HTML,然后再次保存它。
PHP中内置的DOM模块提供了以下功能:http://php.net/manual/en/book.dom.php
下面是一个例子(摘自this article):
字符串
pxq42qpu4#
您可以使用
DOMDocument
来实现您的要求。下面是其中一个示例代码供您参考:字符串
r1zk6ea15#
请在下面试试:
字符串
现在用你的完整html标签image调用函数。看例子:
型