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

时间:2015-04-30 06:10:30

标签: php src

您好,我使用简单的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="">

3 个答案:

答案 0 :(得分:1)

复制base64,之后的所有src文本,并使用php的base64_decode函数对其进行解码。在那里,如果你愿意,你可以将它写入jpg文件。

答案 1 :(得分:1)

<?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."' />";

?>

答案 2 :(得分:-1)

按照以下步骤

<?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)output

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
        )

)