如果 file_exists() 不工作
Posted
技术标签:
【中文标题】如果 file_exists() 不工作【英文标题】:if file_exists() not working 【发布时间】:2014-05-15 09:42:19 【问题描述】:有人知道为什么这个脚本不起作用吗?
$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,即使文件存在 我检查了$imgname,没问题
【问题讨论】:
这种编程语言是 php 吗? 请告诉我们 $imgname 包含的确切内容。 【参考方案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 包含,但没有正确地使用路径。
【讨论】:
【参考方案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>';
?>
【讨论】:
啊,这里的区别是_uri
,加在get_stylesheet_directory()
的末尾,所以变成了get_stylesheet_directory_uri()
。以上是关于如果 file_exists() 不工作的主要内容,如果未能解决你的问题,请参考以下文章