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 相关文章推荐
PHP模拟SQL Server的两个日期处理函数
Oct 09 PHP
10个实用的PHP代码片段
Sep 02 PHP
php使用json_encode对变量json编码
Apr 07 PHP
PHP改进计算字符串相似度的函数similar_text()、levenshtein()
Oct 27 PHP
smarty内置函数config_load用法实例
Jan 22 PHP
PHP、Java des加密解密实例
Apr 27 PHP
Yii多表联合查询操作详解
Jun 02 PHP
laravel 5.1下php artisan migrate的使用注意事项总结
Jun 07 PHP
php基于session锁防止阻塞请求的方法分析
Aug 07 PHP
PHP receiveMail实现收邮件功能
Apr 25 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
Mar 26 PHP
PHP与Web页面的交互示例详解二
Aug 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
天津市收音机工业发展史
2021/03/04 无线电
PHP版国家代码、缩写查询函数代码
2011/08/14 PHP
php安装swoole扩展的方法
2015/03/19 PHP
基于jquery的一个图片hover的插件
2010/04/24 Javascript
window.parent与window.openner区别介绍
2012/04/12 Javascript
js 调用百度地图api并在地图上进行打点添加标注
2014/05/13 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
快速使用Bootstrap搭建传送带
2016/05/06 Javascript
详解vue-validator(vue验证器)
2017/01/16 Javascript
微信小程序 UI与容器组件总结
2017/02/21 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
Django中使用jquery的ajax进行数据交互的实例代码
2017/10/15 jQuery
Element-ui之ElScrollBar组件滚动条的使用方法
2018/09/14 Javascript
JavaScript canvas绘制圆弧与圆形
2020/02/18 Javascript
原生JavaScript创建不可变对象的方法简单示例
2020/05/07 Javascript
Python获取apk文件URL地址实例
2013/11/01 Python
Python本地与全局命名空间用法实例
2015/06/16 Python
Django中URLconf和include()的协同工作方法
2015/07/20 Python
python构建深度神经网络(续)
2018/03/10 Python
Python使用爬虫爬取静态网页图片的方法详解
2018/06/05 Python
Python字典创建 遍历 添加等实用基础操作技巧
2018/09/13 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
通过实例了解Python str()和repr()的区别
2020/01/17 Python
python批量修改xml属性的实现方式
2020/03/05 Python
python计算Content-MD5并获取文件的Content-MD5值方式
2020/04/03 Python
keras 指定程序在某块卡上训练实例
2020/06/22 Python
HTML5验证以及日期显示的实现详解
2013/07/05 HTML / CSS
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
简述进程的启动、终止的方式以及如何进行进程的查看
2014/02/20 面试题
EJB2和EJB3在架构上的不同点
2014/09/29 面试题
体育教育专业毕业生自荐信
2013/11/15 职场文书
大学生演讲稿范文
2014/01/11 职场文书
给领导敬酒词
2015/08/12 职场文书
本地通过nginx配置反向代理的全过程记录
2021/03/31 Servers
css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效
2021/04/29 HTML / CSS