任何的preg_match()从文本中提取图片网址?

我需要preg_match()语法或类似的提取JPG或 PNG GIF网址从混合文本,并把它们放入数组或最终存储第一个URL的东西。

也许有些语法,searchs为开始以http和JPG / PNG / GIF结尾的字符串..

我相信这是可以做到preg_match()

注:文字可以是这样的:blablablabla“http://www.xxx.com/xxx.jpg”blablablabla

谢谢

--------------解决方案-------------

请注意,在那里他们可以欺骗你的服务器中插入假冒匹配的特殊场合。

例如:

http://www.myserver.com/virus.exe?fakeParam=.jpg

要么

http://www.myserver.com/virus.exe#fakeParam=.jpg

我赶紧修改了正则表达式来避免这种情况,但我敢肯定有比这更(如在文件的路径插入00%,例如,不能由一个正则表达式可以很容易地解析)

$matches = array();
preg_match_all('!http://[^?#]+\.(?:jpe?g|png|gif)!Ui' , $string , $matches);

所以,为了安全,使用总是正则表达式中最严格的方式,例如,如果您知道服务器,把它写到正则表达式,或者如果你知道这条道路总是会包含字母,连字符,点,斜线和数字,用一个表达式,如:

$matches = array();
preg_match_all('!http://[a-z0-9\-\.\/]+\.(?:jpe?g|png|gif)!Ui' , $string , $matches);

这应该避免在未来的任何有趣的惊喜。

$matches = array();
preg_match_all('!http://.+\.(?:jpe?g|png|gif)!Ui' , $string , $matches);

分类:php 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.133 (s). 10 q(s)