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类
Nov 25 PHP
随时给自己贴的图片加文字的php水印
Mar 16 PHP
Eclipse中php插件安装及Xdebug配置的使用详解
Apr 25 PHP
php函数间的参数传递(值传递/引用传递)
Sep 23 PHP
PHP生成自定义长度随机字符串的函数分享
May 04 PHP
PHP安全的URL字符串base64编码和解码
Jun 19 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
Jun 30 PHP
php实现字符串翻转的方法
Mar 27 PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 PHP
详解php框架Yaf路由重写
Jun 20 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 22 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
PHP面向对象分析设计的经验原则
2008/09/20 PHP
php按单词截取字符串的方法
2015/04/07 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
2019/10/13 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
Ext中下拉列表ComboBox组件store数据格式用法介绍
2013/07/15 Javascript
Node.js 服务器端应用开发框架 -- Hapi.js
2014/07/29 Javascript
简介JavaScript中Math.LOG10E属性的使用
2015/06/14 Javascript
全面解析Bootstrap中transition、affix的使用方法
2016/05/30 Javascript
jQuery模仿京东/天猫商品左侧分类导航菜单效果
2016/06/29 Javascript
JS查找英文文章中出现频率最高的单词
2017/03/20 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
详解自定义ajax支持跨域组件封装
2018/02/08 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
JavaScript实现留言板案例
2020/03/17 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
如何在selenium中使用js实现定位
2020/08/18 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
[01:06:26]全国守擂赛第二周 Team Coach vs DeMonsTer
2020/04/28 DOTA
[07:54]DOTA2-DPC中国联赛 正赛 iG vs VG 选手采访
2021/03/11 DOTA
wxPython中文教程入门实例
2014/06/09 Python
python模块之re正则表达式详解
2017/02/03 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
python 实现对数据集的归一化的方法(0-1之间)
2018/07/17 Python
将pandas.dataframe的数据写入到文件中的方法
2018/12/07 Python
Python之修改图片像素值的方法
2019/07/03 Python
Python3爬虫关于识别检验滑动验证码的实例
2020/07/30 Python
Habitat家居英国官方网站:沙发、家具、照明、厨房和户外
2019/12/12 全球购物
名词解释型面试题(主要是网络)
2013/12/27 面试题
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
师范生实习的个人自我鉴定
2013/10/20 职场文书
营销人才自我鉴定范文
2013/12/25 职场文书
小学模范班主任事迹材料
2014/05/13 职场文书
亮剑精神观后感
2015/06/05 职场文书
MySQL Innodb索引机制详细介绍
2021/11/23 MySQL