PHP如果带有此扩展名的图像名称没有';t存在于目录中,然后显示XXX.png


PHP if image name with this extension doesn't exist in the directory, then show XXX.png

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

我当前有一个页面(http://powerplantv2.jehzlau.net/ppm-deals)与Magento中某个属性的所有产品名称相呼应。

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

但如果目录中不存在lev.png,我不知道如何添加条件,我只想调用XXX.png。

我如何让PHP首先检查是否存在与目录中某个属性匹配的图像,然后显示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

您可以使用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
}
?>

到目前为止发布的两个答案都是正确的,但为了让事情变得更容易,你可以这样做:

<?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; ?>
<?php
if (!file_exists("PATH_TO_IMAGE") {
  //display xxx.png
} else {
  //load the image
}