file_get_contents оптимизация кода php sql

601
29 декабря 2016, 09:57

На странице в коде есть запрос на получение всего. В т ч и путь к картинке $ava_way. Но на странице такж есть вызов

<img src="/show.php?wsh=6&uid=8736" width = "150" height = "150">

В скрипте вывода картинки есть обращение к бд для получение пути к картинке и ее вывода при помощи file_get_contents.

Краткий код вывода картинки:

select ava_way from ava where uid_ava=8736
...
...
...
@$file = file_get_contents($ava_way . "M");
    //2016-12-27 Переписал чтобы в тбл было ОДНО поле
    //а имена формируються в скрипте
    echo $file;
    exit;

$ava_way . "M" - означает миниатюра картинки.

Чтобы избавиться от "лишнего" запроса, который есть в

"/show.php?wsh=6&uid=8736"

я написал функцию:

function shava($ava_way){
 $file = file_get_contents($ava_way . "M");
 //2016-12-27 Переписал чтобы в тбл было ОДНО поле
 //а имена формируються в скрипте
 //header('Content-type: image/jpeg');
 echo $file;
 //exit;
}

но она выводит в браузер поток байт, а не картинку. Можно ли убрать запрос к бд. А картинку выводить функцией? И как правильно сделать чтобы вывод был картинкой, а не потоком байт?

Без shava() все абсолютно четко работает. Вопрос касается ОПТИМИЗАЦИИ (исключению лишнего запроса к бд).

$ava_way это ../ava/d/Xj/gfepPSnulL0209056001482870188

уСТАНОВКА заголовков

header('Content-type: image/jpeg');

особо не помогает.

Пока редактировал вопрос кажись уже понял что нужно сделать.

upd Наверное нужно создать скрипт который каким-то загадочным способом будет получать путь к картинке и ... НО такой способ противоречит принципу выдачи картинок по скрипту. незн. сейчас буду пробовать... Протестировал я это - всё-таки останется этот "лишний" запрос.

Про собак и ошибки: Именно в этом участке кода ВСЕГДА будет собака. Саму ошибку я не обрабатываю. Ведь если у пользователя нет аватара, то он не сможет получить доступ к элементам управления и не сможет загрузить новую аву. Само собой разумеется, что после регистрации будут какие-то дефолтные аватарки.

READ ALSO
react-native - как работать с ssl/tls

react-native - как работать с ssl/tls

Всем здравствуйтеГуглил, не нашёл ответа на свой вопрос

779
Как сделать TimeLine с подсветкой?

Как сделать TimeLine с подсветкой?

Есть таймлайн длинный, и интересует функция которая при скролле вверх или в низ подсвечивала элемент выбранной позицииБлиже к наглядности...

574
Прыгающие мячи с помощью canvas

Прыгающие мячи с помощью canvas

Как увеличить количество мячей циклом? Я пытался, у меня не получается, сейчас я их размножаю вручную

642