php正则取得页面所有的图片地址

文章分析介绍了多种利用正则提取图片中的地图方法,看了下面所有实例我都少不了preg_match_all这个函数,有需要的朋友可以参考一下。
-
-
 代码如下 复制代码
<?php
//取得页面所有的图片地址

function getimages($str)

{

$match_str = "/((http://)+([^ rn()^$!`"'|[]{}<>]*)((.gif)|(.jpg)|(.bmp)|(.png)|(.GIF)|(.JPG)|(.PNG)|(.BMP)))/";

preg_match_all ($match_str,$str,$out,PREG_PATTERN_ORDER);

return $out;

}

?>

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

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

我的例子:

代码如下 复制代码
preg_match_all("/<img.*srcs*=s*["|']?s*([^>"'s]*)/i",str_ireplace("","",$content),$arr);

呵呵 我的内容部分被php给加上转义了,所以我需要先把去除,str_ireplace("","",$content),然后将匹配的内容保存到$arr数组(二维的).
$arr[1]就是存储该路径的数组.

实例

代码如下 复制代码
<?php
$ext = 'gif|jpg|jpeg|bmp|png';//罗列图片后缀从而实现多扩展名匹配 by http://www.jzread.com  绿色软件
$str = '<p><img title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" src="http://www.jzread.com /data/soft_img/2010091101619.jpg" /></p><p><img title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" src="http://www.jzread.com /data/soft_img/2010091029938.jpg" /></p><p><img title="绿色软件" alt="绿色软件" onload="ResizeImage(this,860)" src="http://www.jzread.com /data/soft_img/2010092839019.jpg" /></p>';
preg_match_all("/(href|src)=(["|']?)([^ "'>]+.($ext))2/i", $str, $matches);
var_dump($matches);
?>

结果

代码如下 复制代码
array(5) {
  [0]=>
  array(3) {
    [0]=>
    string(57) "src="http://www.jzread.com /data/soft_img/2010091101619.jpg""
    [1]=>
    string(57) "src="http://www.jzread.com /data/soft_img/2010091029938.jpg""
    [2]=>
    string(57) "src="http://www.jzread.com /data/soft_img/2010092839019.jpg""
  }
  [1]=>
  array(3) {
    [0]=>
    string(3) "src"
    [1]=>
    string(3) "src"
    [2]=>
    string(3) "src"
  }
  [2]=>
  array(3) {
    [0]=>
    string(1) """
    [1]=>
    string(1) """
    [2]=>
    string(1) """
  }
  [3]=>
  array(3) {
    [0]=>
    string(51) "http://www.jzread.com /data/soft_img/2010091101619.jpg"
    [1]=>
    string(51) "http://www.jzread.com /data/soft_img/2010091029938.jpg"
    [2]=>
    string(51) "http://www.jzread.com /data/soft_img/2010092839019.jpg"
  }
  [4]=>
  array(3) {
    [0]=>
    string(3) "jpg"
    [1]=>
    string(3) "jpg"
    [2]=>
    string(3) "jpg"
  }
}

PHP正则匹配图片并给图片加链接详解

代码如下 复制代码
$newstext=preg_replace(preg_replace('/(<img[^>]+srcs*=s*”?([^>"s]+)”?[^>]*>)/im', ‘<a href=”$2″>$1</a>', $newstext);

1.preg_replace和str_replace的区别:

str_replace只是纯字符替换,而preg_replace才是正则替换

2.$0,$1,$2等的说明:

$0指的是被整个模式所匹配的文本;

$1指的是首个 ( ) 引用的串;

$2指的是第二个()引用的串; 以此类推

时间: 2024-09-14 02:51:01

php正则取得页面所有的图片地址的相关文章

js正则匹配出所有图片及图片地址src的方法

  本文实例讲述了js正则匹配出所有图片及图片地址src的方法.分享给大家供大家参考.具体分析如下: 有很多时候我们需要用到文章里面的图片,而且主要是用到它的图片地址,这个时候我们需要通过正则匹配出图片标签,然后做到我们需要的数据 平时也没怎么用正则,一不学就忘,最近项目需要,然后又去goole了,好乱!一搜一大堆,也不是我想要的,最后把自己留一个已被后用: 实现:通过js正则匹配出所有图片及所有图片地址src. 思路:1.匹配出图片img标签(即匹配出所有图片),过滤其他不需要的字符 从匹配出

js正则匹配出所有图片及图片地址src的方法_javascript技巧

本文实例讲述了js正则匹配出所有图片及图片地址src的方法.分享给大家供大家参考.具体分析如下: 有很多时候我们需要用到文章里面的图片,而且主要是用到它的图片地址,这个时候我们需要通过正则匹配出图片标签,然后做到我们需要的数据 平时也没怎么用正则,一不学就忘,最近项目需要,然后又去goole了,好乱!一搜一大堆,也不是我想要的,最后把自己留一个已被后用: 实现:通过js正则匹配出所有图片及所有图片地址src. 思路:1.匹配出图片img标签(即匹配出所有图片),过滤其他不需要的字符 从匹配出来的

php正则获取文章内容中图片地址例子

 代码如下 复制代码 例子 function getpic($str){  preg_match_all("//isU",$str,$ereg);//正则表达式把图片的整个都获取出来了      $img=$ereg[0][0];//图片     $p="#src=('|\")(.*)('|\")#isU";//正则表达式     preg_match_all ($p, $img, $img1);      $img_path =$img1[2]

正则文章内容中img图片地址与正则内容中的a连接地址

 代码如下 复制代码   $body ='<img src="Image/2009112422220515.gif" alt="楼盘网loupan"  border="0" />';   $Link ='fdas<a href="http://www.111cn.net" target="_blank">网页制作教程教程</a>';   $array ="aa,

php正则内容中所有图片及图片地址

 代码如下 复制代码 //方法一  $body ='<img src="image/2009112422220515.gif" alt="楼盘网111cn.net"  border="0" />';  preg_match_all("/(src|src)=["|'| ]{0,}(image/(.*).(gif|jpg|jpeg|png|bmp))/isu",$body,$img_array);  prin

PHP正则获取页面所有图片地址_php实例

<?php //取得页面所有的图片地址 function getimages($str) { $match_str = "/((http://)+([^ rn()^$!`"'|[]{}<>]*)((.gif)|(.jpg)|(.bmp)|(.png)|(.GIF)|(.JPG)|(.PNG)|(.BMP)))/"; preg_match_all ($match_str,$str,$out,PREG_PATTERN_ORDER); return $out; }

php正则匹配文章中的远程图片地址并下载图片至本地_php技巧

使用php的正则表达式来实现: $content = '这里是文章内容,这里插入一张图片测试 <img src="XXXXXXXXXXXXXXXXXXXX">'; $content = stripslashes ( $content ); $img_array = array (); // 匹配所有远程图片 preg_match_all ( "/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|bmp|png

用正则解析图片地址,并利用XMLHTTP组件将其保存(是个好东西哦,我找了很久!)

xml|正则 现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持.但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的"X",影响美观.以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦.能不能让服务器自动去下载图片保存在服务器并且替换页面上的链接?答案是肯定的.要实现这个功能需要经过三个步骤:一,取得原页中的图片的地址.方法很多,可以用分割字符串,也可以用正则匹配.

用正则解析图片地址,并利用XMLHTTP组件将其保存

xml|正则 现在基于WEB页的HTML的编辑器在新闻系统,文章系统中用得越来越广,一个网页一粘就可以保持原来的样式,同时图片也可以在这个页中保持.但是在使用过程中,如果所粘贴页中的图片被删除,就会在自己的页面上留下一个大大的"X",影响美观.以前只好把这个图片保存下来,再重新上传到服务器上,这样实在麻烦.能不能让服务器自动去下载图片保存在服务器并且替换页面上的链接?答案是肯定的. 要实现这个功能需要经过三个步骤: 一,取得原页中的图片的地址.方法很多,可以用分割字符串,也可以用正则匹