Получить картинку по адресу в переменную и сохранить в файл file_get_contents
Для получения картинки с помощью функции file_get_contents нам потребуется адрес картинки, приведем примеры создания такого рода изображений.
Далее будем получать картинку с помощью file_get_contents по реальному адресу картинки
Картинка и file_get_contents
- Можно ли получить изображение с помощью file_get_contents
- Как получить изображение из ссылки!?
- Выводим изображение полученное file_get_contents
- Как сохранить изображение полученное из ссылки!?
- Как получить размеры изображения полученного file_get_contents
- Скачать
-
Как вывести на экран полученное изображение с помощью file_get_contents
Итак... выше получили картинку из адреса в переменную.
И увидели на странице "иероглифы", которые совсем не похожи на реальную картинку!
Вопрос: "как же это все превратить в картинку"?
Можно ли вывести картинку, полученную с помощью file_get_contents
Рассмотрим два варианта вывода картинки :
1). Вывод картинки полученной file_get_contents через headerЭто, конечно очень странное занятие выводить таким образом картинку, но вывести можно:
$im = imagecreatefromstring(file_get_contents ('https://dwweb.ru/_data/img/personal/about_me.jpg'));
if ($im !== false) {
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
}
Результат вывода картинки полученной с помощью file_get_contents :
Если выведем прямо здесь, то вместо страницы получим картинку, поэтому на отдельной странице
2). Вывод картинки полученной file_get_contents прямо на странице:Для того, чтобы вывести картинку(на страницу) полученную из file_get_contents -нам потребуется чуть больше функций;
Возьмем тот же адрес, что и раньше:
https://dwweb.ru/_data/img/personal/about_me.jpgДалее используем:
Нам потребуется ImageCreateFromString
Далее ob_start
Плюс imagepng
+ base64
И всё это выведем в img
Код вывода картинки полученной file_get_contents
Соберем весь код вывода картинки полученной file_get_contents прямо на странице:
<?
$image_url = 'https://dwweb.ru/_data/img/personal/about_me.jpg';
$imageget = file_get_contents ($image_url);
$image = ImageCreateFromString( $imageget );
ob_start();
imagepng($image );
$png = ob_get_clean();
$uri = "data:image/png;base64," . base64_encode($png);
echo "<img src=" . $uri . " />";
Вывод картинки полученной file_get_contents прямо на странице
Как видим полученная картинка с помощью функции file_get_contents - прекрасно выводится:
Можно ли получить изображение с помощью file_get_contents
Как вы знаете, что картинку/изображение можно получить в переменную, с помощью file_get_contents, но для этого нужно, чтобы выполнилось условие.
Как проверить работает ли функция file_get_contents для картинки?
Для того, чтобы проверить - будет ли работать функция file_get_contents для картинки нам потребуется:
Проверить - включена/либо отключена функция allow_url_fopen
Плюс нам потребуется ini_get
Для этого... на сайте размещаем вот такой код:
<?
echo 'file_get_contents : ', ini_get('allow_url_fopen') ? 'Включено' : 'Выключено';
?>
Код проверки работы file_get_contents с картинкой
Размещаем приведенный код проверки возможности работы функции file_get_contents с картинкой - прямо здесь :
Как получить изображение с помощью file_get_contents!?
Для того, чтобы получить изображение из ссылки с помощью file_get_contents нам потребуется:
Для реального кода будем использовать реальные картинки.
Возьмем её отсюдаВыведем нашу живую картинку:
Присвоим переменной полученные данные::
Если вы попытаетесь вывести на экран
То получим код такого вида:
Весь код можно посмотреть здесь.
Почему вместо картинки непонятный код!?
Вопрос почему не выводится картинка полученная с помощью file_get_contents!?
Почему вместо картинки - код с квадратиками?
Да поэтому, что данный код картинки, php пытается интерпретировать как программу, и естественно, что получится полная хрень:
Как сохранить изображение полученное из ссылки!?
Следующим пунктом, разберем сохранение изображения с помощью file_get_contents.
Для этого нам понадобится:
Форма, куда будем вводить данные из ссылки
<input type="text" name="img" placeholder="введите адрес картинки" style="width: 90%; padding: 10px;">
</form>
Результат поле ввода для получения картинки из адреса
Код скрипта, который получит картинку из ссылки
Далее нам нужен скрипт, который сохранит полученную картинку из ссылки.
Пишем условие :
Далее нам нужно получить разрешение картинки, сделаем это самым примитивным способом, разобьем(explode) ссылку на массив и получим последний элемент. (Создадим простую иллюстрацию, как это работает).
Название файла, чтобы оно не повторялось сделаем из даты:
Нам понадобится функция сохранения данных file_put_contents,, которая может записывать данные в файл, пишем такую конструкцию:
Соберем весь код вместе, его можно скачать по ссылке, скрипт проверен на работоспособность!
Не забудьте написать путь от корневой до сохраняемого файла - "
Скачать скрипт получения картинки file_get_contents
СкачатьЕще один из способов загрузки фото.
Получение разрешения загружаемой картинки :
Данный способ не является безопасным! Если вы лично собираетесь пользоваться - то пожалуйста!
Но для других пользователей - этим способом крайне не рекомендуется пользоваться!
пусть в переменную поступают данные :
Выведем разрешение картинки таким образом:
Результат:
Как получить размеры изображения полученного file_get_contents
Будем получать высоту и ширину из картинки file_get_contents.
Картинку возьмем туже, опять получим её в file_get_contents , пропустим её через
Далее нам понадобится:
imagesx — Получение ширины изображения
imagesy — Получение высоты изображения
Соберем весь код получения размеров картинки из file_get_contents вместе:
$imageget = file_get_contents ('https://dwweb.ru/_data/img/personal/about_me.jpg');
$image = ImageCreateFromString( $imageget );
echo ImageSX($image); // width
echo ImageSY($image); // height
Результат:
Ширина : 900
Высота : 556
Свои комменты в ожидании переделки!
Когда сделаю не знаю!
Времени нет...
Иначе сообщение будет удалено, вас в бан - все просто!
Но если, сил нет как хочется высказать всё, что вы думаете об этом, пожалуйста - комменты от Vk - форма ниже: