0

我想将发布的图像超链接制作成 html 页面上的嵌入图像。所以,我正在设置一些正则表达式语法,但遇到了困难,希望有人能提供帮助。

例如,我想转身;

http://www.example.com/images/some_directory/logo.png

进入

<img src='http://www.example.com/images/some_directory/logo.png'>

所以,我希望能够为所有典型的图像类型做到这一点。到目前为止,我已经拼凑了这个,但无法弄清楚如何完成语法。

<?php 

$pic = 'http://www.example.com/images/some_directory/logo.png';

function post_image($pic)
    {
    return preg_replace('!((http(s)?://)[-a-z]+)!', '<img src="$1">', $pic);
    }
$pic = post_image($pic);

echo $pic;
4

2 回答 2

1

您也许可以尝试这样的正则表达式:

'!((?:https?://)?[-a-z_/.]+\.(?:png|jpg|bmp|gif))!i'

我把png, jpg,bmpgif; 如果你愿意,你可以添加更多。

于 2013-09-26T20:39:48.760 回答
0

如果它是正确的,那么使用 preg_match 然后<img src...在它周围构建字符串可能会更容易 - 像这样?

<?php 
$pic = 'https://example.com/i/like/aardvarks.gif';


function post_image($pic)
{
    $pattern = '^(?:http|https).*(?:\.jpg|\.jpeg|\.png|\.gif)$';

    if (preg_match($pattern, $pic))
        return '<img src="{$pic}">';
    else
        return $pic;
}

$pic = post_image($pic);

echo $pic;

您可能还想在正则表达式的末尾添加i-修饰符(对于 javascript 和 php,因此本指南可以正常工作)以忽略大小写(因为您可能会得到 JPEG、JPEG、JPG、gIf 和各种有趣的变化)。

于 2013-09-27T00:54:33.130 回答