2014-01-10 69 views
0

我想在页面上使用它之前检查文件是否存在。从我的理解这样的事情应该工作,但没有出现,所以我假设我没有正确编码它。检查图像是否存在

<?php 
    $url = get_bloginfo('template_directory'); 
    $page_id = get_queried_object_id();  

     if(file_exists($url . '/images/footerImage' . $page_id . '.png')) { ?> 
      <img class="footerImage" src="<?php echo get_bloginfo('template_directory'); ?>/images/footerImage<?php echo $page_id; ?>.png" /> 
     <?php } ?> 

我希望它能检查文件是否存在,以及它是否创建图像标记,如果不是什么都不做。为什么这不显示任何图像?我知道我拥有这些图像是因为它在if语句之前工作,但在没有图像的页面上创建了一个破碎的图像。

+1

您是否检查过'$ url'的值? –

+1

如果您使用的是文件系统引用而不是URL, –

+1

file_exists在服务器上查找文件而不是URL,这会更有效率(可能更少出错)。有一些例子用于查找file_exists文档页面上是否存在url http://au2.php.net/file_exists –

回答

1

get_bloginfo('template_directory')函数返回绝对URL。但您需要提供相对路径以检查文件是否存在file_exists()

if(file_exists(TEMPLATEPATH . '/images/footerImage' . $page_id . '.png')) { ?> 
     <img class="footerImage" src="<?php echo get_bloginfo('template_directory'); ?>/images/footerImage<?php echo $page_id; ?>.png" /> 
<?php } ?> 
+1

'get_bloginfo('template_directory')'返回像'http://domain.com/upload/ .... png',但'file_exists()'函数需要'/ var/www/html/yourproject/upload/images ... png' –

+0

我已经更新了我的答案,请检查 –

+0

我看到你更新了它后,我问了一些代码。谢谢,我现在明白了,现在我总是对这些情况感到困惑。谢谢! – Fogolicious