我有一个非常图像重的 wordpress 主题。图像被包裹在我需要直接链接到文件的锚标记中。这是一个示例图像的标记:
<a href="Link_to_attachment_page" ><img src="Direct_link_to_file"></a>
我需要的是它的格式如下:
<a href="Direct_link_to_file" rel="shadowbox"><img src="Direct_link_to_file"></a>
编辑:没有写完就意外发表了。
到目前为止,我有一个 preg_match_all 获取页面上每个图像的 src 并将其存储在一个数组中。像这样:
preg_match_all("/<img .*?(?=src)src=\"([^\"]+)\"/si", $content, $m);
我接下来做的是在循环中使用 preg_replace 将每个锚标记的 href 更改为数组中相应的 src:
for($k = 0; $k <$length; $k++){
$pattern ="/<a(.*?)href=('|\")(.*?).(bmp|gif|jpeg|jpg|png)('|\")(.*?)>/i";
$replacement = '<a$1 rel="shadowbox" href="'.$m[1][$k].'"$2$3.$4$5>';
$content = preg_replace($pattern, $replacement, $content);
}
现在,这成功地将 href 设置为存储在数组中的值。但是它将每个href设置为相同的图像(最后一个)。所以这就是我卡住的地方。现在怎么办?