получение размера изображения дает ошибку из RSS-канала - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь создать собственное изображение по умолчанию, если изображение из RSS-ленты слишком маленькое.

это мой код:

list($width, $height, $type, $attr) = getimagesize($item['item_img_path']);
if ($width > 75) {
  $imgpath= $item['item_img'];
}else{
  //no image found - default image
  $imgpath = "<span class='fetched'></span>"; 
}
if ( $width > 75) {
    $imgtest = 'image ( '.$width.' ) is larger than 75';
}else{
    $imgtest = 'image ( '.$width.' ) is less than 75 <br>path is '. $item['item_img_path'].'<br> type is '.$type;
}

, но некоторые каналы возвращают носитель с расширенным URL-адресом, как в:

<media:content width="460" url="https://i.guim.co.uk/img/media/330beb5c556c30ab7cba321f3b79241ab7b4d8af/782_922_7183_4310/master/7183.jpg?w=460&amp;q=55&amp;auto=format&amp;usm=12&amp;fit=max&amp;s=a0cb25015876d9b0b7e4abec488f34b7">

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

Я думал, что смогу обойти это, изменив эту строку:

if ($width > 75) {

до

if ( ($width > 75) || ($width ='')) {

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

поэтому я также попытался получить все дополнительные данные после "jpg" медиа-файла, но он все равно не даст размер изображения:

$s = strstr($item['item_img_path'], 'jpg', true).'jpg';
list($width, $height, $type, $attr) = getimagesize($s);
if ( ($width > 75) || ($width ='')) {
  $imgpath= $item['item_img'];
}else{
   //no image found - default image
  $imgpath = "<span class='fetched'></span>";
}
if ( $width > 75) {
    $imgtest = 'image ( '.$width.' ) is larger than 75';
}else{
    $imgtest = 'image ( '.$width.' ) is less than 75 <br>path is '. $item['item_img_path'].'<br>s is '.$s.'<br> s type is '.$type;
}

RSS-канал, вызывающий у меня проблемы:

https://www.theguardian.com/environment/energy/rss

пример ссылки на файл мультимедиа:

https://i.guim.co.uk/img/media/330beb5c556c30ab7cba321f3b79241ab7b4d8af/782_922_7183_4310/master/7183.jpg?w=460&q=55&auto=format&usm=12&fit=max&s=a0cb25015876d9b0b7e4abec488f34b7

это показывает изображение, но я не могу получить размеры.

и удаление всего после jpg:

https://i.guim.co.uk/img/media/330beb5c556c30ab7cba321f3b79241ab7b4d8af/782_922_7183_4310/master/7183.jpg

выдает запрещенную ошибку. поэтому я не могу дать размеры.

1 Ответ

0 голосов
/ 17 июля 2018

Вы можете использовать информацию, которая вам нужна, чтобы получить полное изображение с сайта media.guim.co.uk. Переключите i.guim.co.uk/img/media/ на media.guim.co.uk/, и вам будет хорошо:

https://media.guim.co.uk/330beb5c556c30ab7cba321f3b79241ab7b4d8af/782_922_7183_4310/master/7183.jpg

...