PHP如果目录中不存在具有此扩展名的图像名称,则显示XXX.png

时间:2015-03-25 06:38:05

标签: php magento

我是PHP的新手,我想做的是让PHP检查特定目录中是否存在具有特定名称的特定图像文件,然后回显该文件的名称,但如果是不存在,然后只显示XXX.png。

我目前有一个页面(http://powerplantv2.jehzlau.net/ppm-deals),它回应了Magento中某个属性的所有产品名称。

此页面根据属性名称调用所有图像。例如,在我的页面中有一个名为" cool haan"的属性名称。因此它会自动调用名为" coolhaan.png"的图像。如果有一个名为" levis"的属性名称。然后它会显示一个名为levis.png的图像。

但如果目录中没有levis.png,我也不知道如何添加条件,我只想打电话给XXX.png。

如果图像存在与目录中的某个属性匹配,我该如何让PHP首先检查,然后show attributename.png,如果现在,XXX.png。

目前,以下是我的代码:

<?php  
$name ='deals'; 
$attributeInfo = Mage::getResourceModel('eav/entity_attribute_collection')->setCodeFilter($name)->getFirstItem(); $attributeId = $attributeInfo->getAttributeId(); 
$attribute = Mage::getModel('catalog/resource_eav_attribute')->load($attributeId); $ppmtenants = 
$attribute ->getSource()->getAllOptions(false); ?>
    <?php foreach ($ppmtenants as $ppmtenant): ?> 
    <img src="<?php echo $this->getUrl() ?>media/wysiwyg/Deals/<?php echo strtolower($ppmtenantclean); ?>.png">
    <?php endforeach; ?>

上面的代码从某个属性获取所有选项,然后显示具有属性名称的所有图像。我想要做的是在显示之前先检查图像名称。

为了简化我的问题,我只想为没有图像的属性添加名为XXX.png的占位符图像。 :d

3 个答案:

答案 0 :(得分:2)

您可以使用file_exists()http://php.net/manual/en/function.file-exists.php检查文件是否存在,然后显示图像,否则输出占位符图像。

<?php if(file_exists(path_to_your_file)) {
// Image does exist, fetch the image
} else {
 // Image doesn't exist, output xxx.png
}
?>

答案 1 :(得分:1)

<?php
if (!file_exists("PATH_TO_IMAGE") {
  //display xxx.png
} else {
  //load the image
}

答案 2 :(得分:1)

到目前为止发布的答案都是正确的,但为了方便您,您可以这样做:

<?php foreach ($ppmtenants as $ppmtenant):
     if(file_exists($this->getUrl()."media/wysiwyg/Deals/".strtolower($ppmtenantclean).".png")) 
     { ?>
       <img src="<?php echo $this->getUrl() ?>media/wysiwyg/Deals/<?php echo strtolower($ppmtenantclean); ?>.png">
     <?php
      }
      else
      {
        echo '<img src="xxx.png" alt="No image" />';
      }
      ?>
<?php endforeach; ?>