PHP converts all data:image in the article into image format

// 文章内容
$article = '这是一段包含data:image的文章内容。<img src="data:image/png;base64,iVBORw0KG...">这是另一段文字。<img src="data:image/jpeg;base64,/9j/4AAQSk...">';

// 正则表达式模式

$pattern = '/<img[^>]*src="data:image\/([a-z]+);base64,([^">]+)"[^>]*alt=["\'](.*?)["\'][^>]*>/i';

// 匹配data:image标签并处理

$article = preg_replace_callback($pattern, function ($matches) {

	
    $extension = $matches[1]; // 图片扩展名
    $base64Data = $matches[2]; // 图片的base64数据

    // 解码base64数据
    $imageData = base64_decode($base64Data);

    // 生成文件名
    $fileName = uniqid() . '.' . $extension;

	$fileName = 'images/case/'.$fileName;		
    // 保存图片文件
    file_put_contents($fileName, $imageData);
		
    // 返回替换后的图片标签
    return '<img src="/' . $fileName . '">';
}, $article);

// 输出处理后的文章内容
echo $article;

the case

<?php
/*
define('IN_DOUCO', true);


require (dirname(__FILE__) . '/include/init.php');

$sql = "SELECT id, title, image, cat_id, link, keytitle, description FROM haci_article";

$query =  $GLOBALS->query($sql);
echo $query;
*/

// 连接到数据库
$mysqli = new mysqli("数据库地址", "数据库账号", "数据库密码", "数据库名");

// 检查连接是否成功
if ($mysqli->connect_errno) {
    echo "连接数据库失败: " . $mysqli->connect_error;
    exit();
}

 获取分类信息
/*
$category = "SELECT cat_id, cat_name FROM haci_article_category";
$category = $mysqli->query($category);
// 处理查询结果
if ($category) {
    while ($row = $category->fetch_assoc()) {
        // 处理每一行数据
        // 示例:输出每行数据的某个字段
		echo $id = $row['cat_id'].'--------';
        echo $article = $row['cat_name'].'<br>';
	}
}
*/

//执行查询
$query = "SELECT * FROM haci_article where cat_id in (96,97,98,99,100,101,102)";
$result = $mysqli->query($query);

// 处理查询结果
if ($result) {
    while ($row = $result->fetch_assoc()) {
        // 处理每一行数据
        // 示例:输出每行数据的某个字段
		$id = $row['id'];
        $article = $row['content'];

		/***处理data:images****/
		$pattern = '/<img[^>]*src="data:image\/([a-z]+);base64,([^">]+)"[^>]*alt=["\'](.*?)["\'][^>]*>/i';
		// 匹配data:image标签并处理

		$article = preg_replace_callback($pattern, function ($matches) {

			
			$extension = $matches[1]; // 图片扩展名
			$base64Data = $matches[2]; // 图片的base64数据

			// 解码base64数据
			$imageData = base64_decode($base64Data);

			// 生成文件名
			$fileName = uniqid() . '.' . $extension;

			$fileName = 'images/cases/'.$fileName;		
			// 保存图片文件
			file_put_contents($fileName, $imageData);
				
			// 返回替换后的图片标签
			return '<img src="/' . $fileName . '">';
		}, $article);

		// 输出处理后的文章内容
		//echo $article;
		/***处理data:images****/
		
		$sql = "UPDATE haci_article SET content = '$article' WHERE id = $id";
	
		if ($mysqli->query($sql) === TRUE) {
				echo "文章内容已成功更新";
			} else {
				echo "更新失败: " . $mysqli->error;
		}
		

    }

    // 释放结果集
    $result->free();
} else {
    echo "查询失败: " . $mysqli->error;
}

// 关闭数据库连接
$mysqli->close();



?>

Guess you like

Origin blog.csdn.net/qq_39339179/article/details/130934787