За последние 24 часа нас посетили 16843 программиста и 1641 робот. Сейчас ищет 901 программист ...

file_get_contents и изображение

Тема в разделе "PHP для новичков", создана пользователем VLK, 24 ноя 2015.

  1. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    Вопрос такой, есть ссылка на изображение (вообще они рисуется при помощи РНР), я его получаю через file_get_contents:
    Код (PHP):
    1. $data = file_get_contents( 'http://php.ru/images/qr-code2.gif' );
    картинка на удаленном серверев $data у меня оказывается много букв, цифр и прочих символов, потом если сделать так:
    Код (PHP):
    1. <img src="data: image/png;base64,<?php echo $data; ?>" />
    единственно я получал gif, а тут png, но не в этом дело

    то картинка будет отображаться, а вот такой вопрос, мне надо для этой картинки сделать обертку, что бы ссылка была не на data: image/png;base64,... а на файл, а в нем уже будет как то происходить вывод этотй картинки, только как это сделать.

    т.е. мне надо что то типа:
    Код (PHP):
    1. <img src="img.php" />
    а в img.php что то вроде
    Код (PHP):
    1. echo $data;
    только как это правильно сделать?
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    так и сделать. только заголовок добавить с типом содержимого
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А нафига через пхп отдавать файл? Или ты генеришь его?
     
  4. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    генерирую

    извините затупил, а точнее что то из разряда "жадный платит дважды", я пытался открыть картинку через интерпретатор (или эмулятор или хрен знает что) встроенный в phpDesigner 8, оно и выдавало кадабру, вот уже 2 часа сижу копаюсь в библиотеке GD, а на Open Server все пашет.

    Добавлено спустя 11 минут 49 секунд:
    Еще такой вопрос возник, а могу я сразу средствами РНР проверить, битое изображение ($data) или нет?
     
  5. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    На виртуалочке работай.
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    не сможешь
     
  7. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Битое изображение это посто на вид оно некрасивое. А данные-то пофик компу какие там биты.
     
  8. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Если imagecreatefromstring() проглотит, значит формат не нарушен. Большинство битых изображений не пройдет.
     
  9. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    и не битых тоже. дело в том какие библиотеки использует пых для работы с изображениями. gd и im плотно юзают cimg - если ей что-то не понравилось то изображение признается битым. а браузер кажет. а редактор вроде гимпа кажет. а дряблый виндовый просмотрщик кажет. значит не битый? так что прямой и честный ответ на вопрос может ли пых распознать битое изображение - нет, не может. без вызова внешних графических утилит. а это уже не пых.
     
  10. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Когда существует множество библиотек, компромисс неизбежен, но я все же не согласен что большинство не битых не пройдут, скорее это будут исключения. Поскольку большинство решений по созданию превьюшек во всём интернете основаны на GD2 и они работают.
     
  11. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    А нафига вообще его распознавать?
     
  12. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    +1
     
  13. VLK

    VLK Старожил

    С нами с:
    15 дек 2013
    Сообщения:
    3.010
    Симпатии:
    58
    это фобия, как я уже писал выше, делал как то на WP, там рисунок генерировался и отдавался в виде src="data: image/png;base64,........."
    (через ob_start генерация происходила) так вот на WP мне все время картинка не отображалась, писала что битая, при этом весь тот же самый код без WP пахал.

    после этого хотелось бы как то убеждаться что не битое.