将 ID 添加到 href PHP 内的图像
Add ID to an image inside a href PHP
我需要在 <a></a>
中的所有图像中找到并为它们添加 ID。它只能应用于 <a href..></a>
中的图像,而不是内容中的所有图像。
我尝试使用 preg_replace 但没有成功。这是 PHP
$content = preg_replace(array('{<a[^>]*><img}'), array(' *add ID to every match *'), $content);
感谢帮助
雅库布
你的问题不是很清楚,所以我在这里做了一些假设,但是像下面这样的问题怎么样?它使用图像的文件名来生成 ID。
此外,我有点睡眠不足,所以我不保证这在所有情况下都有效,等等。但是,它适用于我的简单示例,所以也许这是一个不错的起点。
<?php
$test = '
<a href="#"><img src="example-1.png" /></a>
<a href="#"><img src="example-2.png" /></a>
<img src="example-3.png" />
<img src="example-4.png" />
';
$out = preg_replace_callback(
'|(<a.+?>)<img src="(.+?)\.(.{3})|',
function ($matches) {
return $matches[1].'<img id="'.$matches[2].'" src="'.$matches[2].'.'.$matches[3];
},
$test
);
echo $test;
echo $out;
?>
给出:
<a href="#"><img src="example-1.png" /></a>
<a href="#"><img src="example-2.png" /></a>
<img src="example-3.png" />
<img src="example-4.png" />
<a href="#"><img id="example-1" src="example-1.png" /></a>
<a href="#"><img id="example-2" src="example-2.png" /></a>
<img src="example-3.png" />
<img src="example-4.png" />
编辑:作为一个小提示,您可能希望在使用生成的 ID 之前对其进行一些处理,例如,可以将所有 /
字符替换为 -
。关于找到正确的图像并在此处添加合理的 ID,我试图保持简单和切题,所以我没有深入探讨。您的 "real" 脚本可能应该。此外,具有相同路径和名称的两个图像在此脚本中将具有相同的 ID,这将是一个问题。我只是为它替换的每个计数器保留一个计数器,如果它再次找到相同的结果 ID,则在末尾添加一个数字(因此 example
变为 example1
或其他)。同样,您没有说明您是如何决定使用什么作为 ID 的,所以我只是保持简单。
我需要在 <a></a>
中的所有图像中找到并为它们添加 ID。它只能应用于 <a href..></a>
中的图像,而不是内容中的所有图像。
我尝试使用 preg_replace 但没有成功。这是 PHP
$content = preg_replace(array('{<a[^>]*><img}'), array(' *add ID to every match *'), $content);
感谢帮助 雅库布
你的问题不是很清楚,所以我在这里做了一些假设,但是像下面这样的问题怎么样?它使用图像的文件名来生成 ID。
此外,我有点睡眠不足,所以我不保证这在所有情况下都有效,等等。但是,它适用于我的简单示例,所以也许这是一个不错的起点。
<?php
$test = '
<a href="#"><img src="example-1.png" /></a>
<a href="#"><img src="example-2.png" /></a>
<img src="example-3.png" />
<img src="example-4.png" />
';
$out = preg_replace_callback(
'|(<a.+?>)<img src="(.+?)\.(.{3})|',
function ($matches) {
return $matches[1].'<img id="'.$matches[2].'" src="'.$matches[2].'.'.$matches[3];
},
$test
);
echo $test;
echo $out;
?>
给出:
<a href="#"><img src="example-1.png" /></a>
<a href="#"><img src="example-2.png" /></a>
<img src="example-3.png" />
<img src="example-4.png" />
<a href="#"><img id="example-1" src="example-1.png" /></a>
<a href="#"><img id="example-2" src="example-2.png" /></a>
<img src="example-3.png" />
<img src="example-4.png" />
编辑:作为一个小提示,您可能希望在使用生成的 ID 之前对其进行一些处理,例如,可以将所有 /
字符替换为 -
。关于找到正确的图像并在此处添加合理的 ID,我试图保持简单和切题,所以我没有深入探讨。您的 "real" 脚本可能应该。此外,具有相同路径和名称的两个图像在此脚本中将具有相同的 ID,这将是一个问题。我只是为它替换的每个计数器保留一个计数器,如果它再次找到相同的结果 ID,则在末尾添加一个数字(因此 example
变为 example1
或其他)。同样,您没有说明您是如何决定使用什么作为 ID 的,所以我只是保持简单。