Question

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

Was it helpful?

Solution 2

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.

OTHER TIPS

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>';
                }
            ?> 
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top