Привет, я работаю с простой 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="">
Скопируйте весь текст SRC после base64,
и использовать 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
)
)