php if 语句显示删除缩略图
php if statement to display remove thumbnail
我正在尝试使用 if 语句,这样如果未设置变量,它将显示 "noimg.jpg" 或不显示缩略图,但目前没有这样做,它显示的是损坏的缩略图。
$feed = 新 SimplePie_random_sort();
$feed->set_feed_url(array(
'http://www.thelocal.de/feeds/rss.php',
'http://dailymail.co.uk',
'http://www.exberliner.com/',
'http://www.telegraph.co.uk/news/worldnews/europe/germany/',
));
$feed->set_item_limit(3);
//enable caching
$feed->enable_cache(true);
//provide the caching folder
$feed->set_cache_location('cache');
//set the amount of seconds you want to cache the feed
$feed->set_cache_duration(1800);
//init the process
$feed->init();
//let simplepie handle the content type (atom, RSS...)
$feed->handle_content_type();
<?php foreach ($feed->get_items() as $item): ?>
<?php if ($enclosure = $item->get_enclosure())
{
echo '<img src="' . $enclosure->get_link() . '" class="feed-thumb" />';
}
else echo'<img src="noimg.jpg">';
?>
<?php endforeach; ?>
来自 var_dump 的结果:
object(SimplePie_Enclosure)#399 (27) { ["bitrate"]=> NULL ["captions"]=> NULL ["categories"]=> NULL ["channels"]=> NULL ["copyright"]=> NULL ["credits"]=> NULL ["description"]=> NULL ["duration"]=> NULL ["expression"]=> NULL ["framerate"]=> NULL ["handler"]=> NULL ["hashes"]=> NULL ["height"]=> NULL ["javascript"]=> NULL ["keywords"]=> NULL ["lang"]=> NULL ["length"]=> NULL ["link"]=> NULL ["medium"]=> NULL ["player"]=> NULL ["ratings"]=> NULL ["restrictions"]=> array(1) { [0]=> object(SimplePie_Restriction)#220 (3) { ["relationship"]=> string(5) "allow" ["type"]=> NULL ["value"]=> string(7) "default" } } ["samplingrate"]=> NULL ["thumbnails"]=> NULL ["title"]=> NULL ["type"]=> NULL ["width"]=> NULL }
我不确定如何根据此信息修改 if 语句?
您的 if
中有一个作业
if ($enclosure = $item->get_enclosure())
此分配的计算结果为您分配给 $enclosure
的值。如果该值为 truey,则条件计算为 true
。否则,它将计算为 false
。问题在于,在某些情况下,您希望它的计算结果为 false
,但它的计算结果为 true
。解决方案是优化您的条件以评估正确的条件,并确保您不会忘记赋值。将 var_dump($enclosure)
放入表示为大括号的块中并重现问题是个不错的主意。什么是倾倒?一个东西?它是如何真实的?获取您以这种方式收集的信息并修复条件。
我正在尝试使用 if 语句,这样如果未设置变量,它将显示 "noimg.jpg" 或不显示缩略图,但目前没有这样做,它显示的是损坏的缩略图。
$feed = 新 SimplePie_random_sort();
$feed->set_feed_url(array(
'http://www.thelocal.de/feeds/rss.php',
'http://dailymail.co.uk',
'http://www.exberliner.com/',
'http://www.telegraph.co.uk/news/worldnews/europe/germany/',
));
$feed->set_item_limit(3);
//enable caching
$feed->enable_cache(true);
//provide the caching folder
$feed->set_cache_location('cache');
//set the amount of seconds you want to cache the feed
$feed->set_cache_duration(1800);
//init the process
$feed->init();
//let simplepie handle the content type (atom, RSS...)
$feed->handle_content_type();
<?php foreach ($feed->get_items() as $item): ?>
<?php if ($enclosure = $item->get_enclosure())
{
echo '<img src="' . $enclosure->get_link() . '" class="feed-thumb" />';
}
else echo'<img src="noimg.jpg">';
?>
<?php endforeach; ?>
来自 var_dump 的结果:
object(SimplePie_Enclosure)#399 (27) { ["bitrate"]=> NULL ["captions"]=> NULL ["categories"]=> NULL ["channels"]=> NULL ["copyright"]=> NULL ["credits"]=> NULL ["description"]=> NULL ["duration"]=> NULL ["expression"]=> NULL ["framerate"]=> NULL ["handler"]=> NULL ["hashes"]=> NULL ["height"]=> NULL ["javascript"]=> NULL ["keywords"]=> NULL ["lang"]=> NULL ["length"]=> NULL ["link"]=> NULL ["medium"]=> NULL ["player"]=> NULL ["ratings"]=> NULL ["restrictions"]=> array(1) { [0]=> object(SimplePie_Restriction)#220 (3) { ["relationship"]=> string(5) "allow" ["type"]=> NULL ["value"]=> string(7) "default" } } ["samplingrate"]=> NULL ["thumbnails"]=> NULL ["title"]=> NULL ["type"]=> NULL ["width"]=> NULL }
我不确定如何根据此信息修改 if 语句?
您的 if
if ($enclosure = $item->get_enclosure())
此分配的计算结果为您分配给 $enclosure
的值。如果该值为 truey,则条件计算为 true
。否则,它将计算为 false
。问题在于,在某些情况下,您希望它的计算结果为 false
,但它的计算结果为 true
。解决方案是优化您的条件以评估正确的条件,并确保您不会忘记赋值。将 var_dump($enclosure)
放入表示为大括号的块中并重现问题是个不错的主意。什么是倾倒?一个东西?它是如何真实的?获取您以这种方式收集的信息并修复条件。