php正则匹配图片路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php正则匹配图片路径相关的知识,希望对你有一定的参考价值。

<p>郛 地地地是否<img height="960" width="4398" alt="" src="/userfiles/image/花朵.jpg" />在地了了解到</p>

以上是从数据库里调出的一个字符串,我要用正则查找其中的图片地址与图片名,也就是要得到/userfiles/image/花朵.jpg
以便删除之

$rr = $row_Recordset1['tttt'];
preg_grep(' ',$rr);
不知上面引号正则写法应该怎么写?

我是用FCKeditor,把文本与图片地址存到一起了。而当要删除文本时,我要通正则得到文本中的图片地址,将图片删除

正则按说该不难写呀,preg_grep('/(\/userfiles\/[.+][\.]jpg)/', "$rr");这样也不行,新手,累死了

我的图片有的放在userfiles/image里,有的直接放在userfiles/里按说正则时只要能匹配/userfiles/ .jpg
或者/userfiles/ .gif或者/userfiles/ .png就能得到图片了
可是这个正则还真不会写。谁会呀?分不是问题,有多少给多少。

给你个我写的,并在项目中使用了很长时间的正则吧.
/<img.*src\s*=\s*[\"|\']?\s*([^>\"\'\s]*)/i
,我使用kindeditor保存文章,但是需要取出第N个图片的地址作为文章的标志图片,文章代码(内容的html)保存到数据库一个字段,然后图片地址保存到另外一个字段.我就是使用上面的正则解决的.

我说明下,上面的地址是直接获取img标签内src属性的值.在使用该正则的php页面访问该路径如果能找到图片的话,可以直接使用,如果不能,你可以使用preg_match_all将所有地址先保存到数组,然后处理路径,比如获取文件名称(不含路径部分),然后重新组成url,再删除图片.

我的例子:
preg_match_all("/<img.*src\s*=\s*[\"|\']?\s*([^>\"\'\s]*)/i",str_ireplace("\\","",$content),$arr);

呵呵 我的内容部分被php给加上\转义了,所以我需要先把\去除,str_ireplace("\\","",$content),然后将匹配的内容保存到$arr数组(二维的).
$arr[1]就是存储该路径的数组.
参考技术A preg_match_all("/<img.*?src\\s*=\\s*[\\"|\\'](.*?)[\\"|\\'].*?>/i", str_ireplace("\\\\","",$html), $matches);

以上是关于php正则匹配图片路径的主要内容,如果未能解决你的问题,请参考以下文章

php如何使用正则表达式匹配url图片啊

如果用php正则获取图片路径前段部分?

php如何正则替换css中的图片路径?

PHP用正则批量替换Img中src内容,用正则表达式获取图片路径实现缩略图功能

如何用正则表达式修改图片路径?

HTML中img标签的src填本地绝对路径无法显示