• 技术文章 >后端开发 >php教程

    PHP正则获取页面所有图片地址,_PHP教程

    2016-07-12 08:56:11原创732

    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;
    }
    ?> 

    /"'s]*)/i

    ,我使用kindeditor保存文章,但是需要取出第N个图片的地址作为文章的标志图片,文章代码(内容的html)保存到数据库一个字段,然后图片地址保存到另外一个字段.我就是使用上面的正则解决的.

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

    我的例子:

    preg_match_all("/"'s]*)/i",str_ireplace("\","",$content),$arr); 

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

    $arr[1]就是存储该路径的数组.

    实例

    <?php
    $ext = 'gif|jpg|jpeg|bmp|png';//罗列图片后缀从而实现多扩展名匹配 by http://www.bkjia.com 绿色软件
    $str = '

    绿色软件

    绿色软件

    绿色软件

    '; preg_match_all("/(href|src)=(["|']?)([^ "'>]+.($ext))\2/i", $str, $matches); var_dump($matches); ?>

    结果

    array(5) {
    [0]=>
    array(3) {
    [0]=>
    string(57) "src="http://www.bkjia.com /data/soft_img/2010091101619.jpg""
    [1]=>
    string(57) "src="http://www.hzhuti.com/sonyericsson/w715/ 2010091029938.jpg""
    [2]=>
    string(57) "src="http://www.bkjia.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.bkjia.com /data/soft_img/2010091101619.jpg"
    [1]=>
    string(51) "http://www.bkjia.com /data/soft_img/2010091029938.jpg"
    [2]=>
    string(51) "http://www.bkjia.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('/(]+srcs*=s*”?([^>"s]+)”?[^>]*>)/im', ‘$1', $newstext); 

    1.preg_replace和str_replace的区别:

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

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

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

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

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

    有关PHP正则获取页面所有图片地址的知识,小编就给大家介绍到这里,希望对大家有所帮助!

    您可能感兴趣的文章:

    www.bkjia.comtruehttp://www.bkjia.com/PHPjc/1113713.htmlTechArticlePHP正则获取页面所有图片地址, php//取得页面所有的图片地址function getimages($str){$match_str = "/((http://)+([^ rn()^$!`"'|[]{}]*)((.gif)|(.jpg)|(.bmp)|(.pn...

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php 正则 图片地址
    上一篇:Zend Framework实现将session存储在memcache中的方法,zendmemcache_PHP教程 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文解析PHP元转分的错误示范(附代码实例)• PHP+Socket系列之实现websocket聊天室• PHP+Socket系列之实现客户端与服务端数据传输• PHP+Socket系列之IO多路复用及实现web服务器• PHP socket学习:带你做个简单的socket服务器
    1/1

    PHP中文网