·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> php网站开发 >> php把采集内容中图片地址下载并替换成本地地址

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

作者:佚名      php网站开发编辑:admin      更新时间:2022-07-23
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