如何识别图片网址并用img标签替换它们?

时间:2017-10-22 12:21:04

标签: php

我从数据库中获取字符串,其中包含某些图像的URL。但我不希望用户看到那里写的URL,而是实际的图像。我尝试过google和stackoverflow,但我得到的答案要么不相关,要么难以理解。

例如

$string= "hello everyone check this picture: http://somesite.com/heretheimage.jpg";

后:

$new_string = "hello everyone check this picture: <img src='http://somesite.com/heretheimage.jpg'>";

我怎么能在php中做到这一点?

编辑:有人将此问题标记为可能与Regular expression pattern to match url with or without http://www重复。但我想告诉你,在那个问题中,用户想要识别网址。但在我的问题中,它特别适用于图像网址,然后这些网址应该用img标记括起来。

1 个答案:

答案 0 :(得分:1)

你可以使用preg_match功能试试这个:

    <?php
    $string= "hello everyone check this picture: http://somesite.com/heretheimage.jpg";
    $pattern = '/(?:(?:https?:\/\/))[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,4}\b(?:[-a-zA-Z0-9@:%_\+.~#?&\/=]*(\.jpg|\.png|\.jpeg))/';
    preg_match($pattern, $string, $matches, PREG_OFFSET_CAPTURE);
    $new_string = "hello everyone check this picture: <img src='".$matches."'>";
    ?>