如果file_exists()不起作用

时间:2014-04-03 13:46:01

标签: php if-statement file-exists

有人知道为什么这个剧本无法正常工作?

$imgname = get_stylesheet_directory_uri().'/images/headers/'.str_replace(' ', '', strtolower(get_the_title())).'.jpg';
            if (file_exists($imgname)) {
                echo '<img src="'.$imgname.'"> </img>';
            } else {
                echo '<img src="'.get_stylesheet_directory_uri().'/images/headers/default.jpg"> </img>';
                }

即使文件存在,它也始终返回default.jpg 我检查了$ image名称,没关系

2 个答案:

答案 0 :(得分:2)

是的,你是对的,我这样使用:

$imgpath = get_stylesheet_directory().'/images/headers/'.str_replace(' ', '', strtolower(get_the_title())).'.jpg';
$imguri = get_stylesheet_directory_uri().'/images/headers/'.str_replace(' ', '', strtolower(get_the_title())).'.jpg';
            if (file_exists($imgpath)) {
                echo '<img src="'.$imguri.'"> </img>';
            } else {
                echo '<img src="'.get_stylesheet_directory_uri().'/images/headers/default.jpg"> </img>';
                }
            ?> 

答案 1 :(得分:1)

您可能必须在此区分URL和文件路径。

当您将浏览器定向到像

这样的图像时
http://www.example.com/path/to/image.jpg

并且它有效,那么file_exists()函数仍将为此URL返回false,因为它不是图像路径。

正确的路径就像是

/var/www/htdocs/path/to/image.jpg

在本地文件系统上。然后file_exists()将为此路径返回true。

使用file_exists()测试的是图像的本地路径。如果存在,则需要包含图像的URL。您正确地执行了URL包含,但没有路径使用。