Pour une raison quelconque, ce code PHP ci-dessous ne fonctionnera pas, je ne peux pas le comprendre.
C'est très étrange, File_exists ne semble pas voir que l'image existe, j'ai vérifié pour m'assurer qu'un bon chemin de fichier est inséré dans la fonction file_exists et qu'il fonctionne toujours
Si je change file_exists en! File_exists, il retournera une image qui existe et d'autres qui n'existent pas
define('SITE_PATH2', 'http://localhost/');
$noimg = SITE_PATH2. 'images/userphoto/noimagesmall.jpg';
$thumb_name = 'http://localhost/images/userphoto/1/2/2/59874a886a0356abc1_thumb9.jpg';
if (file_exists($thumb_name)) {
$img_name = $thumb_name;
}else{
$img_name = $noimg;
}
echo $img_name;
file_exists()
doit utiliser un chemin de fichier sur le disque dur, pas une URL. Donc, vous devriez avoir quelque chose de plus comme:
$thumb_name = $_SERVER['DOCUMENT_ROOT'] . 'images/userphoto/1/2/2/59874a886a0356abc1_thumb9.jpg';
if(file_exists($thumb_name)) {
some_code
}
docs dire:
Depuis PHP 5.0.0, cette fonction peut également être utilisée avec certains URL. Reportez-vous à Liste des protocoles/wrappers pris en charge pour une liste des wrappers supportant
stat()
famille de fonctionnalités.
file_exists
ne fonctionne que sur le système de fichiers local.
Essayez donc ceci si vous utilisez localhost:
$thumb_name = 'images/userphoto/1/2/2/59874a886a0356abc1_thumb9.jpg';
if (file_exists($_SERVER['DOCUMENT_ROOT'].$thumb_name)) {
$img_name = SITE_PATH2.$thumb_name;
} else {
$img_name = $noimg;
}
Avez-vous activé l'option qui vous permet d'utiliser des URL externes? Vous pouvez le définir dans le fichier php.ini:
allow_url_fopen = 1
Essayez ci-dessous un. Ça marche pour moi
define('SITE_PATH2', 'http://localhost/');
$noimg = SITE_PATH2. 'images/userphoto/noimagesmall.jpg';
$thumb_name = 'http://localhost/images/userphoto/1/2/2/59874a886a0356abc1_thumb9.jpg';
if ($fileopen = @fopen($thumb_name)) {
$img_name = $thumb_name;
fclose($fileopen);
}else{
$img_name = $noimg;
}
echo $img_name;
http://php.net/manual/en/function.file-exists.php
avez-vous vérifié les commentaires ci-dessous?
Je lis juste certaines parties, mais il semble y avoir plusieurs problèmes.
La mise en cache peut être un problème. Lorsque vous ouvrez des URL FTP, le résultat est toujours vrai (ils disent dans les commentaires).
Vous devez écrire le chemin du fichier comme "file:///C:/Documents%20and%20Settings/xyz/Desktop/clip_image001.jpg"
.