Search code examples
phpif-statementfile-exists

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


Solution

  • 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.