用于火车头入库接口,自动下载内容中的图片进行本地服务器本地化,把内容中的远程图片本地化入库,再提起第一张图片作为缩略图
分享入库代码接口编程代码
$value = $save[0]['content'];
if (preg_match_all("/(src)=([\"|']?)([^ \"'>]+\.(gif|jpg|jpeg|png))\\2/i", $value, $imgs)) {
foreach ($imgs[3] as $img) {
if (strpos($img, '/api/ueditor/') !== false
|| strpos($img, '/api/umeditor/') !== false) {
continue;
}
// 下载图片
if (strpos($img, 'http') === 0) {
// 正常下载
// 判断域名白名单
$arr = parse_url($img);
$domain = $arr['host'];
if ($domain) {
$sites = WRITEPATH.'config/domain_site.php';
if (isset($sites[$domain])) {
// 过滤站点域名
} elseif (strpos(SYS_UPLOAD_URL, $domain) !== false) {
// 过滤附件白名单
} else {
$zj = 0;
$remote = \Phpcmf\Service::C()->get_cache('attachment');
if ($remote) {
foreach ($remote as $t) {
if (strpos($t['url'], $domain) !== false) {
$zj = 1;
break;
}
}
}
if ($zj == 0) {
// 可以下载文件
// 同步模式
// 下载远程文件
$rt = \Phpcmf\Service::L('upload')->down_file([
'url' => $img,
'attachment' => \Phpcmf\Service::M('Attachment')->get_attach_info(intval($field['content']['setting']['option']['attachment'])),
]);
if ($rt['code']) {
$att = \Phpcmf\Service::M('Attachment')->save_data($rt['data'], 'ueditor_down_img');
if ($att['code']) {
// 归档成功
$value = str_replace($img, $rt['data']['url'], $value);
$img = $att['code'];
}
}
}
}
}
}
// 缩略图
if ($img && !$save[1]['thumb']) {
$save[1]['thumb'] = $img;
}
}
}
if ($imgs && !$save[1]['thumb']) {
$save[1]['thumb'] = $imgs[3][0];
}
$save[0]['content'] = $value;接火车头入库代码编写,我擅长各种字段的入库
联系QQ 1344680861
火车头采集器
经过不断的修复和完善,在经历过几个大版本的更新之后,火车头将更加友好,所有配置项可在后台...
火车头采集器
经过不断的修复和完善,在经历过几个大版本的更新之后,火车头将更加友好,所有配置项可在后台...
我来学习一下