简体   繁体   中英

if file_exists() not working

somebody knows why this script not working?

$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>';
                }

it returns allways the default.jpg, even if the file exists I checked the $imgname, and it is ok

yes you are right, I mus use like this:

$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>';
                }
            ?> 

You probably have to distinguish here between URLs and file paths.

When you direct your browser to a an image like

http://www.example.com/path/to/image.jpg

and it works, then still the file_exists() function will return false for this URL, because it's not an image path.

The correct path would be something like

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

on the local file system. file_exists() would then return true for this path.

What you need to test for with file_exists() is the local path of the image. If it exists, then you need to include the URL of the image. You do the URL inclusion correctly, but not the path usage.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM