TestController.php
1.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?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;
}
}