php采集文章中的图片获取替换到本地(实现代码)


Posted in PHP onJuly 08, 2013
/**
 * 获取替换文章中的图片路径
 * @param string $xstr 内容
 * @param string $keyword 创建照片的文件名
 * @param string $oriweb 网址
 * @return string
 * 
 */
function replaceimg($xstr,$keyword, $oriweb){     //保存路径
    $d = date('Ymd', time());
    $dirslsitss = '/var/www/weblist/uploads/'.$keyword.'/'.$d;//分类是否存在
    if(!is_dir($dirslsitss)) {
        @mkdir($dirslsitss, 0777);
    }
    //匹配图片的src
    preg_match_all('#<img.*?src="([^"]*)"[^>]*>#i', $xstr, $match);
    foreach($match[1] as $imgurl){
        $imgurl = $imgurl;
        if(is_int(strpos($imgurl, 'http'))){
            $arcurl = $imgurl;
        } else {
            $arcurl = $oriweb.$imgurl;        
        }
        $img=file_get_contents($arcurl);
        
        if(!empty($img)) {
            //保存图片到服务器
            $fileimgname = time()."-".rand(1000,9999).".jpg";
            $filecachs=$dirslsitss."/".$fileimgname;
            $fanhuistr = file_put_contents( $filecachs, $img );
            $saveimgfile = "/uploads/$keyword"."/".$d."/".$fileimgname;
            
            $xstr=str_replace($imgurl,$saveimgfile,$xstr);
        }
    }
    return $xstr;
}
PHP 相关文章推荐
生成sessionid和随机密码的例子
Oct 09 PHP
PHP查询MySQL大量数据的时候内存占用分析
Jul 22 PHP
解析php addslashes()与addclashes()函数的区别和比较
Jun 24 PHP
PHP中对于浮点型的数据需要用不同的方法解决
Mar 11 PHP
php二分查找二种实现示例
Mar 12 PHP
用PHP和Shell写Hadoop的MapReduce程序
Apr 15 PHP
PHP中exec函数和shell_exec函数的区别
Aug 20 PHP
php实现的日历程序
Jun 18 PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 PHP
php支付宝在线支付接口开发教程
Sep 19 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
Jan 15 PHP
php libevent 功能与使用方法详解
Mar 04 PHP
php打开文件fopen函数的使用说明
Jul 05 #PHP
解析PHP中$_FILES的使用以及注意事项
Jul 05 #PHP
如何利用PHP执行.SQL文件
Jul 05 #PHP
PHP session_start()问题解疑(详细介绍)
Jul 05 #PHP
浅析PHP安装扩展mcrypt以及相关依赖项(PHP安装PECL扩展的方法)
Jul 05 #PHP
PHP仿博客园 个人博客(2) 数据库增添改删
Jul 05 #PHP
浅析PHP的ASCII码转换类
Jul 05 #PHP
You might like
2020最新CPU的性能排名
2020/04/02 数码科技
php长字符串定义方法
2012/07/12 PHP
PHP提示Notice: Undefined variable的解决办法
2012/11/24 PHP
详解配置 Apache 服务器支持 PHP 文件的解析
2017/02/15 PHP
php获取微信共享收货地址的方法
2017/12/21 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
javascript 判断数组是否已包含了某个元素的函数
2010/05/30 Javascript
IE6弹出“已终止操作”的解决办法
2010/11/27 Javascript
jQuery代码优化 事件委托篇
2011/11/01 Javascript
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
js几秒以后倒计时跳转示例
2013/12/26 Javascript
JavaScript中输出标签的方法
2014/08/27 Javascript
ie8下修改input的type属性报错的解决方法
2014/09/16 Javascript
Jquery修改页面标题title其它JS失效的解决方法
2014/10/31 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
简介JavaScript中的setTime()方法的使用
2015/06/11 Javascript
全面解析Bootstrap手风琴效果
2020/04/17 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
详解Vue项目部署遇到的问题及解决方案
2019/01/11 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
[33:15]2018DOTA2亚洲邀请赛3月30日 小组赛B组 VP VS Mineski
2018/03/31 DOTA
python对数组进行反转的方法
2015/05/20 Python
Python中turtle作图示例
2017/11/15 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
Python turtle库绘制菱形的3种方式小结
2019/11/23 Python
详解Python Opencv和PIL读取图像文件的差别
2019/12/27 Python
Python threading.local代码实例及原理解析
2020/03/16 Python
Python文件操作基础流程解析
2020/03/19 Python
python 图像判断,清晰度(明暗),彩色与黑白实例
2020/06/04 Python
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
学校运动会开幕演讲稿
2014/01/04 职场文书
员工离职证明范本
2015/06/12 职场文书
董事长助理工作总结2015
2015/07/23 职场文书
Python中 range | np.arange | np.linspace三者的区别
2022/03/22 Python
Java线程的6种状态与生命周期
2022/05/11 Java/Android