Как отобразить изображение в теги IMG средствами PHP с заблокированного сайта?
Такая задача которую не знаю как решить.
Есть картинка которая находится на сайте который мой провайдер заблокировал.
Мой сайт находится в другой стране и от туда к заблокированному сайту есть доступ, я использую api этого заблокированного сайта без проблем. Но когда питаюсь с заблокированного сайта Вывести картинку на своем сайте она не грузится.
Подскажите пожалуйста, в какую сторону копать?
----------Спустя X времени поиска сделал так -----
$uri = $avatar;
$imageget = file_get_contents ($users_get[$user_id]["avatar"]);
$image = ImageCreateFromString($imageget);
ob_start();
imagepng($image);
$png = ob_get_clean();
$uri = "data:image/jpg;base64," . base64_encode($png);
echo "<img src=" . $uri . " />";
У меня этот код выполняется в цикле, в итоге никоторые картинки не отображаются, в HTML такое src="data:image/jpg;base64,"
В чем проблема не знаю :(
Ответы (1 шт):
Можете сделать отдельный php файл, который будет тянуть для вас картинки с заблокированного сайта, и я бы туда еще кеширование добавил, а путь к картинкам задавайте в get-параметре. Например, создаем get_image.php и кладем в корне сайта:
<?php
if($path = filter_input(INPUT_GET,'image-path')){
// тут сделать логику по определению типа картики и выдаче нужного заголовка
header('Content-Type: image/png');
echo file_get_contents('https://www.google.com/'.$path);
}
Теперь на самой странице, например в index.php, задаем урл картинки следующим образом:
<html>
...
<img src="/get_image.php?<?= http_build_query([
'image-path' => 'images/branding/googlelogo/2x/googlelogo_dark_color_272x92dp.png'
]) ?>">
...
</html>
В результате домен не меняется и картинки не блокируются. Еще можно сделать красивый урл для картинок, если в .htaccess поколдовать