TestController.php 1.8 KB
<?php
/**
 * @remark :
 * @name   :TestController.php
 * @author :lyh
 * @method :post
 * @time   :2024/11/5 9:44
 */

namespace App\Http\Controllers\Bside;

use App\Enums\Common\Code;
use App\Http\Logic\Bside\News\NewsLogic;
use App\Models\CustomModule\CustomModuleContent;
use App\Models\RouteMap\RouteMap;
use App\Services\ProjectServer;
use Illuminate\Support\Facades\DB;

class TestController extends BaseController
{
    public function ceshi(){
        $test = '';
        $pattern = '/<img\s+[^>]*src=["\']([^"\']+)["\']/i';
        $matches = [];
        preg_match_all($pattern, $test, $matches);
        $updatedSources = $this->saveBase64Images($matches[1]);
        foreach($updatedSources as $k => $v){
            $test = str_replace($v, $k, $test);
        }
        $this->response('success',Code::SUCCESS,$test);
    }

    /**
     * @remark :解码图片
     * @name   :saveBase64Images
     * @author :lyh
     * @method :post
     * @time   :2024/11/7 16:52
     */
    public function saveBase64Images($imageSources) {
    $updatedSources = [];
    foreach ($imageSources as $src) {
        // Check if src is a base64 image
        if (preg_match('/^data:image\/(png|jpg|jpeg|gif);base64,/', $src, $match)) {
            $imageType = $match[1]; // Image type (png, jpg, etc.)
            $base64Data = preg_replace('/^data:image\/(png|jpg|jpeg|gif);base64,/', '', $src);
            $decodedData = base64_decode($base64Data);
            if ($decodedData === false) {
                $updatedSources[] = $src; // If decoding fails, keep original src
                continue;
            }
            $outputFile = 'images' . uniqid() . '.' . $imageType;
            $imageUrl = 'http://your-domain.com/' . $outputFile;
            $updatedSources[$imageUrl] = $src;
        }
    }
    return $updatedSources;
}

}