我从一个简单的脚本开始,在我网站的每个页面的顶部显示一个图像。然后我决定对其进行修改,以便无论扩展名如何,都会显示图像。 (大多数图像都是jpg的,但也有一些png和gif的。)
我的脚本在本地工作正常,但不在线。在线,它只显示jpg的。如果我更改第一行代码以使数组中的最后一个扩展名为png,那么它只显示png。
$extensions = array('gif', 'png', 'jpg');
switch(PHP_OS)
{
case 'Linux':
$Root = '/public_html/symbols';
break;
default:
$Root = '/Applications/MAMP/htdocs/gs';
break;
}
foreach($extensions as $extension) {
$file = '/images/sections/world/top/'.$DesigGen.'/'.$ImgParent.'/'.$MyID2.''.$Multi .'.'.$extension;
if(file_exists($Root.$file)) {
// echo '<img src="'.$file.'">';
break;
}
}
// This switch simply styles images that have captions. The important thing is the image path, including $extension. Why does it work locally but not online?
switch($ImgCaption)
{
case '':
$TopImg = '<div><img src="/images/sections/world/top/'.$DesigGen.'/'.$ImgParent.'/'.$MyID2.''.$Multi.'.'.$extension.'" alt="'.$MyName.' '.$DesigGen.'"></div>';
break;
default:
$TopImg = '<div><img src="/images/sections/world/top/'.$DesigGen.'/'.$ImgParent.'/'.$MyID2.''.$Multi.'.'.$extension.'" alt="'.$MyName.' '.$DesigGen.'">
<div class="Txt">'.$ImgCaption.'</div></div>';
break;
}
echo $TopImg;
修改
我尝试了Dagon的建议,如下:
foreach (glob("'/images/sections/world/top/'.$DesigGen.'/'.$ImgParent.'/'.$MyID2.'' .$Multi.'.'.{jpg,gif,png}", GLOB_BRACE) as $filename);
$TopImg = '<img src="'.$filename.'">';
我收到错误消息“未定义的变量”。我必须错误地实施它。
答案 0 :(得分:0)
如果文件在任何扩展名中都不存在,foreach循环中的代码可以使您获得意外结果(总是在foreach结束时获得最后一个扩展名)
$query = array('$text' => array('$search'=> $term));
$cursor = $collection->find($query);
我认为 $ Root 变量对于在线网站来说可能是错误的,导致file_exists()检查失败。