php把文章中所有的data:image转换成图片格式

// 文章内容
$article = '这是一段包含data:image的文章内容。这是另一段文字。';

// 正则表达式模式

$pattern = '/]*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 '';
}, $article);

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

案例

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'].'
'; } } */ //执行查询 $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 = '/]*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 ''; }, $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(); ?>

你可能感兴趣的:(数学建模)