我从数据库中获取字符串,其中包含某些图像的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标记括起来。
答案 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."'>";
?>