php 获取图片链接的正则表达式 多帮我获取了一个冒号 百思不得其解求解答

2015-03-25 12:47:40 +08:00
 jookr

'''php
//先定义一个获取所有图片的函数
function getSrc($content){

$pattern="/<[img|IMG].*?src=[\\\"|\\\'|\'|\"](.*?(?:[\.gif|\.jpg|\.png|\.jpeg|\.bmp]))[\\\"|\\\'|\"|\'].*?[\/]?>/i";
preg_match_all($pattern,$content,$match);
return $match;

}
//字符串
$str = ' <img src=\"http://127.0.0.1/file/upload/201503/24/1.jpg\" width=\"554\" height=\"416\" alt=\"\" />
<img src="http://127.0.0.1/file/upload/201503/24/2.jpg" width=\"550\" height=\"775\" alt=\"\" />
<img src="http://127.0.0.1/file/upload/201503/24/3.jpg" width=\"336\" height=\"508\" alt=\"\" />';

//获取并且输出
print_r(getSrc($str));

//输出内容如下
/*

Array
(
[0] => Array
(
[0] => <img src=\"http://127.0.0.1/file/upload/201503/24/1.jpg\" width=\"554\" height=\"416\" alt=\"\" />
[1] => <img src="http://127.0.0.1/file/upload/201503/24/2.jpg" width=\"550\" height=\"775\" alt=\"\" />
[2] => <img src="http://127.0.0.1/file/upload/201503/24/3.jpg" width=\"336\" height=\"508\" alt=\"\" />
)

[1] => Array
    (
        [0] => "http://127.0.0.1/file/upload/201503/24/1.jpg
        [1] => http://127.0.0.1/file/upload/201503/24/2.jpg
        [2] => http://127.0.0.1/file/upload/201503/24/3.jpg
    )

)
//为啥$str[1][0]开头的地方会带双引号呢?怎么写才能让它不带双引号
*/

2377 次点击
所在节点    问与答
5 条回复
lianyue
2015-03-25 12:56:32 +08:00
[\\\"|\\\'|\'|\"]
换成 () 括号 (\\\"|\\\'|\'|\")
imn1
2015-03-25 13:04:59 +08:00
@lianyue
他几乎把全部或选择的都写成[]了,能出这个结果已经算是撞大运了
lianyue
2015-03-25 13:20:31 +08:00
@imn1 我只注意到了 多余的部分
kungfuchicken
2015-03-25 13:25:53 +08:00
<img.*?src=\\?(?:\'|\")(.*?\.(?:gif|jpg|png|jpeg|bmp]))\\?(?:\'|\").*?\/?>
kungfuchicken
2015-03-25 13:27:03 +08:00
<img.*?src=\\?(?:\'|\")(.*?\.(?:gif|jpg|png|jpeg|bmp))\\?(?:\'|\").*?\/?>
更正一下

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/179243

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX