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 相关文章推荐
服务器端解压缩zip的脚本
Dec 22 PHP
PHP set_time_limit(0)长连接的实现分析
Mar 02 PHP
PHP 将逗号、空格、回车分隔的字符串转换为数组的函数
Jun 07 PHP
ThinkPHP 连接Oracle数据库的详细教程[全]
Jul 16 PHP
PHP应用JSON技巧讲解
Feb 03 PHP
PHP中多维数组的foreach遍历示例
Jun 13 PHP
基于递归实现的php树形菜单代码
Nov 19 PHP
对PHP PDO的一些认识小结
Jan 23 PHP
php浏览历史记录的方法
Mar 10 PHP
php简单复制文件的方法
May 09 PHP
CodeIgniter记录错误日志的方法全面总结
May 17 PHP
PHP parse_ini_file函数的应用与扩展操作示例
Jan 07 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
星际争霸 Starcraft 编年史
2020/03/14 星际争霸
网络资源
2006/10/09 PHP
来自PHP.NET的入门教程
2006/10/09 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
PHP采集类snoopy详细介绍(snoopy使用教程)
2014/06/19 PHP
php版交通银行网银支付接口开发入门教程
2016/09/26 PHP
Ubuntu中支持PHP5与PHP7双版本的简单实现
2018/08/19 PHP
不使用XMLHttpRequest实现异步加载 Iframe和script
2012/10/29 Javascript
jQuery .attr()和.removeAttr()方法操作元素属性示例
2013/07/16 Javascript
表单元素与非表单元素刷新区别详细解析
2013/11/06 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
跟我学习javascript的执行上下文
2015/11/18 Javascript
谷歌showModalDialog()方法不兼容出现对话窗口的解决办法
2016/02/15 Javascript
分享一个原生的JavaScript拖动方法
2016/09/25 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
protractor的安装与基本使用教程
2017/07/07 Javascript
一种angular的方法级的缓存注解(装饰器)
2018/03/13 Javascript
echarts整合多个类似option的方法实例
2018/07/10 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
小程序识别身份证,银行卡,营业执照,驾照的实现
2019/11/05 Javascript
Vue Elenent实现表格相同数据列合并
2020/11/30 Vue.js
python实现class对象转换成json/字典的方法
2016/03/11 Python
使用python生成目录树
2018/03/29 Python
Python实现字典(dict)的迭代操作示例
2018/06/05 Python
Flask之flask-session的具体使用
2018/07/26 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
python用插值法绘制平滑曲线
2021/02/19 Python
python之array赋值技巧分享
2019/11/28 Python
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
竞聘副主任科员演讲稿
2014/01/11 职场文书
公共场所禁烟倡议书
2014/08/30 职场文书
个人遵守党的政治纪律情况对照检查材料
2014/09/26 职场文书
实习科室评语
2015/01/04 职场文书
职工培训工作总结
2015/08/10 职场文书
导游词之晋城蟒河
2019/12/12 职场文书
纯 CSS 自定义多行省略的问题(从原理到实现)
2021/11/11 HTML / CSS