Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用regexp在img标签周围添加链接_Php_Regex - Fatal编程技术网

Php 使用regexp在img标签周围添加链接

Php 使用regexp在img标签周围添加链接,php,regex,Php,Regex,我想用preg_replace()在图像标签周围添加链接 之前: <img href="" src="" alt="" /> 之后: <a href="" ..><img href="" src="" alt="" /></a> 我将非常感谢任何帮助。多谢各位 这有帮助吗 $str = '<img href="" src="" alt="" />'; preg_replace('/(<img[^>]+>)

我想用preg_replace()在图像标签周围添加链接

之前:

<img href="" src="" alt="" />

之后:

<a href="" ..><img href="" src="" alt="" /></a>

我将非常感谢任何帮助。多谢各位

这有帮助吗

$str = '<img href="" src="" alt="" />';

preg_replace('/(<img[^>]+>)/', '<a href="" ...>$1</a>', $str));
根据

preg_replace('#()#',''$str)

再一次。。这期望与原始的
img
标签一致。如果它们是由你创造的,那么你可能会保持现状。如果没有,您将希望防止丢失属性、顺序变化、双引号与单引号等。

如果您试图在单击时提供“更大”版本的图像,请单击。如果是这样的话,我会选择javascript

在这种情况下,链接与站点的内容和功能无关,只用于增强用户体验,因此它非常适合增强用户体验javascript类型

jQuery示例大致如下(注意,我添加了CanClick类以更好地控制要单击的图像):

此代码尚未经过测试


希望有帮助

除此之外,如果图像的alt文本中有一个
,则会失败。@partoa correct。。这是我的,我添加了免责声明“取决于…”@rdanee最了解他(编辑:或她)的确切情况,我只是想提供一些建议。谢谢!您能告诉我如何将img的src复制到a的href吗?谢谢!将img的src复制到a的href不适用于我的案例。其他一切都很好,谢谢!这真的很有用,但是我会坚持我最初的解决方案:(
'#(<img[^>]+ alt="[^"]*" />)#'
preg_replace('#(<img[^>]+ src="([^"]*)" alt="[^"]*" />)#', '<a href="$2" ...>$1</a>', $str)
$(function(){
    // get all images that have 'can-click' class
    $('img.can-click').each(function(){
        // adds the custom cursor pointer to give the user clicking feedback
        $(this).css('cursor', 'pointer');

        // your clicking handle goes here
        $(this).click(function(){
            // you can set up the image on a light-box, to a new tab, etc...
        });

    });
});