我有一个preg_replace
函数来查找所有图像并将它们包含在<figure>
标记内,并使用不同的类,这取决于图像源:
$pattern = '"/<img[^>]*src="([^"]+)"[^>]*alt="([^"]+)"[^>]*>\i"e';
$replacement = '"<figure class=\"" . check($1) . "\"><img src=\"$1\" alt=\"$2\" /></figure>"';
preg_replace($pattern, $replacement, $content);
因此,要设置正确的类,我希望使用图像源参数调用函数check($source)
。通过这种方式,功能将返回必要的类。
正如您在上面的代码中看到的,我正在尝试使用e修饰符,但它似乎不起作用。
preg_replace_all
查找所有图片,如果这些图片在$content
变量中很多?答案 0 :(得分:1)
您可以使用preg_replace_callback()
来实现此目的。它允许您定义和使用功能进行替换。该函数应该期望一个匹配数组,它应该返回替换值。
e
修饰符的 preg_replace()
也可以解决问题。
答案 1 :(得分:0)
检查正则表达式库,已经有一些HTML image patterns。