PHP 如果目录中不存在具有此扩展名的图像名称,则显示 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.
的图像
但是我不知道如果目录中不存在levis.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
if (!file_exists("PATH_TO_IMAGE") {
//display xxx.png
} else {
//load the image
}
到目前为止发布的两个答案都是正确的,但为了让事情更容易,您可以这样做:
<?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 的新手,我想做的是让 PHP 检查特定目录中是否存在具有特定名称的特定图像文件,然后回显文件名,但如果它不存在,则只显示 XXX.png.
我目前有一个页面 (http://powerplantv2.jehzlau.net/ppm-deals) 回显 Magento 中某个属性的所有产品名称。
本页面根据属性名称调用所有图片。例如在我的页面中有一个名为“cool haan
”的属性名称。所以它会自动调用名为“coolhaan.png
”的图像。如果有一个名为 "levis" 的属性名称,那么它将显示一个名为 levis.png.
但是我不知道如果目录中不存在levis.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
if (!file_exists("PATH_TO_IMAGE") {
//display xxx.png
} else {
//load the image
}
到目前为止发布的两个答案都是正确的,但为了让事情更容易,您可以这样做:
<?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; ?>