为了实现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后台编辑器将微信公众号上的图片本地化。如果在操作过程中遇到任何问题,可以进一步调试或参考官方文档。
标签:info,url,微信,htmlspecialchars,source,编辑器,array,imgUrl,PbootCMS From: https://www.cnblogs.com/hwrex/p/18411777