php把采集内容中图片地址下载并替换成本地地址

王朝学院·作者佚名  2016-05-25
窄屏简体版  字體: 小  |  中  |  大  |  超大  

php把采集内容中图片地址下载并替换成本地地址把字符串中地址全部获取到一个数组我们利用PReg_match_all函数

代码如下 复制代码 <?php$str='<p><img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/></p>';$pattern="/<[img|IMG].*?src=['|"](.*?(?:[.gif|.jpg]))['|"].*?[/]?>/";preg_match_all($pattern,$str,$match);print_r($match);?>

结果

Array( [0] => Array ( [0] => <img border="0" src="upfiles/2009/07/1246430143_1.jpg" alt=""/> ) [1] => Array ( [0] => upfiles/2009/07/1246430143_1.jpg ))

有了上面核心函数下面就好做了

代码如下 复制代码 /** * 获取替换文章中的图片路径 * @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(www.111cn.net)(!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;} from:http://www.111cn.net/phper/php-cy/48607.htm

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航