Php 从URL创建Img标记
我想要什么Php 从URL创建Img标记,php,regex,url,image,preg-replace,Php,Regex,Url,Image,Preg Replace,我想要什么 如果字符串中的URL在URL的末尾包含.jpg(不是字符串),则应使用preg\u replace从中生成图像,否则创建正常链接 例如: 如果我有http://www.example.com/images/photo.jpg然后应将其替换为: 问题: URL以任何方式替换为链接,并且我的正则表达式不起作用:( 我尝试过的: $content=preg\u replace(“/(http:\/\/[^\s]+(?=\.jpg))/i“,”,$content); $content
如果字符串中的URL在URL的末尾包含
.jpg
(不是字符串),则应使用preg\u replace
从中生成图像,否则创建正常链接
例如:
如果我有http://www.example.com/images/photo.jpg
然后应将其替换为:
问题:
URL以任何方式替换为链接,并且我的正则表达式不起作用:( 我尝试过的:
$content=preg\u replace(“/(http:\/\/[^\s]+(?=\.jpg))/i“,”,$content);
$content=nl2br(preg\u replace(“/(http:\/\/[^\s]+(?!\.jpg))/m“,”,$content));
$content=preg\u replace('.\b(http://\S+\.jpg)\b#i','.$content);
你不需要四处张望,跟着我走就行了
$content = preg_replace("#(http://[^ ]+\\.jpg(?= |$)#i","<img src=\"$1\" alt=\"$1\"/>", $content);
$content=preg\u replace(“#(http://[^]+\\.jpg(?=|$)#i”,”,$content);
我认为您在需要向后看时使用了向前看运算符。您可以将(?=\.jpg)
更改为(?试试这个
function replace_links($content)
{
if (preg_match('#(http://[^\s]+(?=\.(jpe?g|png|gif)))#i', $content))
{
$content = preg_replace('#(http://[^\s]+(?=\.(jpe?g|png|gif)))(\.(jpe?g|png|gif))#i', '<img src="$1.$2" alt="$1.$2" />', $content);
}
else
{
$content = preg_replace('#(http://[^\s]+(?!\.(jpe?g|png|gif)))#i', '<a href="$1" rel="nofollow" target="blank" title="$1" class="news-link">$1</a>', $content);
}
return $content;
}
函数替换链接($content)
{
if(preg#u match('#(http://[^\s]+(?=\(jpe?g | png | gif)))#i',$content))
{
$content=preg|u replace('#(http://[^\s]+(?=\(jpe?g?png?gif))(\(jpe?g?png?gif))#i','$content);
}
其他的
{
$content=preg#u replace('#(http://[^\s]+(?!\(jpe?g | png | gif)))#i','$content);
}
返回$content;
}
这对我很有效
$parse_img='Hello, http://orbitco-ccna-pastquestions.com/images/Q5.jpg
在上图中,路由器R1有两个点对点'
$parse_img=preg_replace('/(https?:\/\/(.\*)?\\.jpg|png|gif)[\s+]*/i',"< img src=\"$1\" alt = \"$1\">< /img >",$parse_img);
echo $parse_img;
$parse\u img=preg\u replace('/(https?:\/\/(.\*)?\\.jpg\124; png\124; gif)[\s+]*/i',“
,$parse\u img);
echo$parse_img;
Suyash\b
匹配句点前后和其他符号:因此它将匹配http://something.com/image.jpg.html
等等。难道你不需要避开这些反斜杠吗?Amargohosh的版本也有同样的问题。如果图像替换在链接替换之前,那么它会显示得非常糟糕,如果是在链接r之后eplacement那么它只是一个链接,我应该怎么做?如果图像替换在链接替换之前,我会得到这样的结果:http://192.168.2.104/images/users/image.jpg“alt=”“rel=“nofollow”target=“blank”title=”http://192.168.2.104/images/users/image.jpg“>”class=“news link”>http://192.168.2.104/images/users/image.jpg“>
嘿!谢谢你的回答:),我用IF/THEN
尝试过类似的解决方案,但你的更好;),它可以工作,但有两个问题,1.这样我就不能有任何链接不是以jpg
,png
或gif
结尾,在内容中,2.在照片之后有图像类型。jpg
在plus中以结尾。jpg
,我不需要它,我也不知道如何使用它我看到你在源代码和alt中加了$2,我删除了它们,然后消失了,但图像没有显示
$parse_img='Hello, http://orbitco-ccna-pastquestions.com/images/Q5.jpg
$parse_img=preg_replace('/(https?:\/\/(.\*)?\\.jpg|png|gif)[\s+]*/i',"< img src=\"$1\" alt = \"$1\">< /img >",$parse_img);
echo $parse_img;