有人知道为什么这个剧本无法正常工作?
$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名称,没关系
答案 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包含,但没有路径使用。