Как просмотреть несколько адресов для sr c в теге img? - PullRequest
2 голосов
/ 12 января 2020

Я работаю над проектом, встроенным в Laravel 5.8, где мне нужно просмотреть 3 различных источника изображений для тега img. Например, сначала я поставлю src из "https://yw-web.yoworld.com/cdn/items/12/73/127305/127305.png", если это не возвращает изображение, тогда я предоставлю второй адрес, такой как "https://yw-web.yoworld.com/cdn/items/12/73/127305/127305_130_100.gif", если все еще нет изображения обнаружил, что я попытаюсь третий адрес, как "https://yw-web.yoworld.com/cdn/items/12/73/127305/127305_60_60.gif", и если все три из них не работают, то это изображение будет загружено "https://yoworld.info/assets/image_not_found.jpg"

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

HTML:
<img class="my-auto mx-auto" src="{{$img}}">


PHP:
$src= 'https://yw-web.yoworld.com/cdn/items/12/73/127305/127305';
if(@getimagesize($src.'.png')){
$img=$src.'.png';
}
elseif(@getimagesize($src.'_130_100.gif')){
$img=$src.'_130_100.gif';
}
elseif(@getimagesize($src.'_60_60.gif')){
$img=$src.'_60_60.gif';
}
else{
$img=url('img/image_not_found.jpg');
}

file_exists () не работает, потому что я обращаюсь к этим изображениям из другого домена, и cURL также занимает много времени.

Пожалуйста, предложите мне подход, который занимает меньше времени. Я также могу использовать Javascript, это обеспечивает решение.

Ответы [ 2 ]

1 голос
/ 12 января 2020

попробуйте

$file = 'http://www.someAddress.com/somefile.jpg';
$file_headers = @get_headers($file);
if(!$file_headers || $file_headers[0] == 'HTTP/1.1 404 Not Found') {
    $exists = false;
}
else {
    $exists = true;
}
0 голосов
/ 12 января 2020

Просмотрите этот ответ:

Проверьте, существует ли изображение на сервере, используя JavaScript?

Возможно, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...