将所有图像转换为可点击的A标签,其中包含img

时间:2014-08-29 15:45:35

标签: php html

我有一块html,里面有很多<img src="..."/>

现在我正在寻找一种方法:

<img src="lol.jpg"/>进入:

<a href="lol.jpg" class="image_inside_text" target="_blank">
<img src="lol.jpg"/>
</a>

我们的想法是在新页面中打开图像以查看完整大小的图像,我正在添加一个类,以防我想稍后将其变成弹出窗口。 我希望用PHP做到这一点,有人可以帮助我吗?

谢谢

5 个答案:

答案 0 :(得分:1)

他在PHP中寻求解决方案(参见标签)。

$string = <<<EOD
<img src="lol.jpg">
<img src="lol.jpg"/>
<img src="lol.jpg" alt="sufix"/>
<img alt="prefix" src="lol.jpg"/>
EOD;

$pattern = '/<img[^>]+src="([a-z.]+)"[^>]*>/i';
$replacement = '<a href="${1}">${0}</a>';
echo preg_replace($pattern, $replacement, $string);

在线版http://ideone.com/pY2EWY

答案 1 :(得分:0)

好吧,只需使用一些jquery,试试这个:

<script>
        $(function(){
                $('.thisimg').replace('<a href="your location" class="your class" target="_blank"><img src="your src" class="thisimg" /></a>');
        });
</script>

<img src="your src" class="thisimg" />

答案 2 :(得分:0)

有几种方法可以做到这一点......大部分涉及Javascript。

看看jquery的方法wrap(),它将任何选定的元素包装到另一个元素中:

$("img").each(function() {
    var href = $(this).attr("href");
    $(this).wrap("<a href='"+href+"' class='image_inside_text' target='_blank'></a>");
});

http://api.jquery.com/wrap/

答案 3 :(得分:0)

你可以使用jQuery:

$(function(){
    $('img').each(function() {
        var src = $(this).attr("src");
        $( this ).replaceWith('<a href="' + src +'" class="image_inside_text" target="_blank"><img src="' + src + '"/></a>')
    });
});

答案 4 :(得分:0)

您可以使用输出缓冲:ob_start并执行类似于此示例的操作,并将回调替换为test30建议的内容:

<?php

function callback($buffer)
{
  // replace all the apples with oranges
  return (str_replace("apples", "oranges", $buffer));
}

ob_start("callback");

?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php

ob_end_flush();

?>