PHP预浸料匹配/替换?

2022-03-22 00:00:00 regex php preg-replace preg-match

我需要读取字符串$mysting并替换e.x的所有事件。

<img src="dummypic.jpg alt="dummy pic">

<img src="dummypic.jpg alt="dummy pic" title="dummy pic">

换句话说,在缺少的地方添加标题,并使title标记与alt标记具有相同的值。

某些事件可能有附加参数,如BORDER、WITH、HEIGHT,这些参数应该保持不变.


解决方案

您可以使用phpQuery或QueryPath执行此操作:

$qp = qp($html);
foreach ($qp->find("img") as $img) {
    $img->attr("title", $img->attr("alt"));
}
print $qp->writeHTML();

尽管在此简单情况下求助于正则表达式可能是可行的:

preg_replace('#(<imgs[^>]*)(alt=)("[^"]+")#', '$1$2$3 title=$3', $h);

(使用PREG_REPLACE_CALLBACK确保不存在title=属性会更有意义。)

相关文章