$base_dir = ‘./’; //程序根目录
$img_dir = ‘upimg’; //图片存放目录
$body = ‘
’;//以下部分为测试代码
$body = addslashes($body); //这里用程序代码来实现php.ini配置的自动转义特殊符号
$body = saveRemoteImage($body);
echo “
”.stripslashes($body); //恢复转义符,在html里输出
/**
* 图片远程下载
* saveRemoteImage($body)
* @return string
* @date 2010-3-17 14:30:09
* @author cfanbo
*/
function saveRemoteImage($body) {
global $base_dir,$img_dir;
$body = stripslashes($body);
//检索图片信息
$img_array = array();
preg_match_all(“/(src|SRC)=[\”|’| ]{0,}(http:\/\/(.*)\.(gif|jpg|jpeg|bmp|png))/isU”,$body,$img_array); //只能检测图片地址以http://开头的图片
$img_array = array_unique($img_array[2]);
//发现图片信息,并处理
if (!empty($img_array)) {
//============ 图片下载开始
set_time_limit(0);
$imgUrl = $img_dir.’/’.strftime(‘%Y%m%d’, time());
$imgPath = $base_dir . $imgUrl;
$milliSecond = strftime(‘%H%M%S’, time());
if(!is_dir($imgPath)) @mkdir($imgPath, 0777);
foreach ($img_array as $key => $value) {
$value = trim($value);
$get_file = @file_get_contents($value);
$rndFileName= $imgPath.’/’.$milliSecond . $key . ‘.’ . substr($value, -3, 3); //扩民名
$fileurl = $imgUrl.’/’.$milliSecond . $key . ‘.’ . substr($value, -3, 3);
if ($get_file) {
$fp = @fopen($rndFileName, ‘w’);
@fwrite($fp, $get_file);
@fclose($fp);
}
$body = ereg_replace($value, $fileurl, $body);
}
//============ 图片下载结束
}
$body = addslashes($body);
return $body;
}


174

被折叠的 条评论
为什么被折叠?



