为了实现PbootCMS后台编辑器将微信公众号上的图片本地化,可以按照你提供的方法进行修改。以下是详细的步骤和修改内容:
1. 修改 coreextendueditor/phpction_crawler.php
文件
原始代码
/* 抓取远程图片 */
$list = array();
if (isset($_POST[$fieldName])) {$source = $_POST[$fieldName];
} else {$source = $_GET[$fieldName];
}
foreach ($source as $imgUrl) {$item = new Uploader($imgUrl, $config, "remote");$info = $item->getFileInfo();// 图片打水印$ext = array('.jpg','.png','.gif');if (in_array($info['type'], $ext)) {resize_img(ROOT_PATH . $info['url']); // 缩放大小watermark_img(ROOT_PATH . $info['url']); // 水印}array_push($list, array("state" => $info["state"],"url" => $info["url"],"size" => $info["size"],"title" => htmlspecialchars($info["title"]),"original" => htmlspecialchars($info["original"]),"source" => htmlspecialchars($imgUrl)));
}
修改后的代码
/* 抓取远程图片 */
$list = array();
if (isset($_POST[$fieldName])) {$source = $_POST[$fieldName];
} else {$source = $_GET[$fieldName];
}
foreach ($source as $imgUrl) {$item = new Uploader($imgUrl, $config, "remote");$info = $item->getFileInfo();// 图片打水印$ext = array('.jpg','.png','.gif');if (in_array($info['type'], $ext)) {resize_img(ROOT_PATH . $info['url']); // 缩放大小watermark_img(ROOT_PATH . $info['url']); // 水印}array_push($list, array("state" => $info["state"],"url" => $info["url"],"size" => $info["size"],"title" => htmlspecialchars($info["title"]),"original" => htmlspecialchars($info["original"]),"source" => htmlspecialchars_decode($imgUrl)));
}
2. 修改 coreextendueditor/php/Uploader.class.php
文件
原始代码
private function saveRemote() {$imgUrl = htmlspecialchars($this->fileField);$imgUrl = str_replace("&", "&", $imgUrl);
}
修改后的代码
private function saveRemote() {$imgUrl = htmlspecialchars($this->fileField);$imgUrl = str_replace("&", "&", $imgUrl);// 增加对微信图片的判断if (strpos($imgUrl, 'https://mmbiz.qpic.cn') !== false) {$newstr = strtolower(strrchr($imgUrl, '?'));$imgUrl = str_replace($newstr, '.jpg', $imgUrl);}
}
3. 清理缓存并测试
- 清理缓存:确保清理浏览器缓存,以确保加载的是最新的代码。
- 测试:复制微信公众号的文章并粘贴到PbootCMS后台编辑器中,查看图片是否成功本地化。
注意事项
- 安全检查:确保修改后的代码不会引入新的安全漏洞,如XSS攻击等。
- 兼容性测试:测试不同类型的图片链接,确保所有图片都能正确本地化。
- 备份代码:在进行任何修改之前,备份原始代码,以便在出现问题时能够恢复。
通过以上步骤,你应该能够成功实现PbootCMS后台编辑器将微信公众号上的图片本地化。如果在操作过程中遇到任何问题,可以进一步调试或参考官方文档。