为了实现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, '网址') !== false) {
        $newstr = strtolower(strrchr($imgUrl, '?'));
        $imgUrl = str_replace($newstr, '.jpg', $imgUrl);
    }
}

3. 清理缓存并测试

  • 清理缓存:确保清理浏览器缓存,以确保加载的是最新的代码。
  • 测试:复制微信公众号的文章并粘贴到PbootCMS后台编辑器中,查看图片是否成功本地化。

注意事项

  • 安全检查:确保修改后的代码不会引入新的安全漏洞,如XSS攻击等。
  • 兼容性测试:测试不同类型的图片链接,确保所有图片都能正确本地化。
  • 备份代码:在进行任何修改之前,备份原始代码,以便在出现问题时能够恢复。

通过以上步骤,你应该能够成功实现PbootCMS后台编辑器将微信公众号上的图片本地化。如果在操作过程中遇到任何问题,可以进一步调试或参考官方文档。