如何在php中获取像这样的编码图像的正常src?

How to get normal src of an coded image like this in php?

您好,我使用简单的 php 解析器从外部服务器保存 imgs...所以我想获得一张正常的 src 图片 但似乎 img 下面的元素有一个不寻常的 src ...

是否可以将此代码变为正常 src 或至少先将其保存在我的服务器中?

注意:src 中的文本太长...超过 170000 个字符...我删除了其中的大部分以插入此处以向您展示...

<img style="display: block; margin-left: auto; margin-right: auto;" src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAgAAZABkAAD/7AARRHVja3kAAQAEAAAAZAAA/+4ADkFkb2JlAGTAAAAAAf/bAIQAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMDAwMDAwMDAwEBAQEBAQECAQECAgIBAgIDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD/8AAEQgBZQJ2AwERAAIRAQMRAf/EANcAAAAFBQEAAAAAAAAAAAAAAAIDBAgJAQUGBwoAAQAABgMBAQAAAAAAAAAAAAACAwQFBgcAAQgJChAAAQMCBAQEAwUFBQQFCQQLAQIDBBEFACESBjFBEwdRYSIIcRQJgZGhMhWxwdFCI/DhUjMW8WJyJJKistIXgkNTdLQldTcYwo1J+AH8U2v8uqLpH6v5jprx0gEfAaySD8RiOkWfmihfp9w/igf0u9f//Z" alt="">

复制base64,之后的所有src文本,并使用php的base64_decode函数对其进行解码。在那里,您可以根据需要将其写入 jpg 文件。

<?php
  echo base64_encode(file_get_contents("../images/folder16.gif"))
?>

您可以使用PHP函数对图像进行编码。 请参阅此工作示例:

<?php 
  $img = base64_encode(file_get_contents("https://www.google.co.in/images/srpr/logo11w.png"));
echo "<img src='data:image/gif;base64,".$img."' />";

?>

按照以下步骤操作

<?php

// [1] Prepare your page HTML content
$html = '<img src="data:image/png;base64,image_[1]_valid_base_64_encoded_string">';
$html .= '<img src="data:image/gif;base64,image_[2]_valid_base_64_encoded_string">';
$html .= '<img src="data:image/jpeg;base64,image_[3]_valid_base_64_encoded_string">';
$html .= '<img src="data:image/jpg;base64,image_[4]_valid_base_64_encoded_string">';

// [2] Get all src attributes
$xpath = new DOMXPath(@DOMDocument::loadHTML($html));
$src = $xpath->evaluate("//img/@src");

// [3] Loop src attributes and push image info to $images arary
$images = array();
foreach ($src as $attr)
{
    $data = explode('/', $attr->value);
    $data = str_replace(';', ',', $data[1]);

    list($extension, $type, $encoded_string) = explode(',', $data);

    // push to images array
    $images[] = array(
        'extension' => strtolower($extension),
        'image_base64' => $encoded_string,
    );
}

// results
echo '<pre>';
print_r($images);
echo '</pre>';

// [4] Move images to directory
// @file_put_contents("path/to/dir/image_name.$extension",  base64_decode($encoded_string));

// print_r($images) 输出

Array
(
    [0] => Array
        (
            [extension] => png
            [image_base64] => image_[1]_valid_base_64_encoded_string
        )

    [1] => Array
        (
            [extension] => gif
            [image_base64] => image_[2]_valid_base_64_encoded_string
        )

    [2] => Array
        (
            [extension] => jpeg
            [image_base64] => image_[3]_valid_base_64_encoded_string
        )

    [3] => Array
        (
            [extension] => jpg
            [image_base64] => image_[4]_valid_base_64_encoded_string
        )

)