Vérification de l'existance d'un fichier

Will
Invité n'ayant pas de compte PHPfrance

08 nov. 2007, 18:12

Bonjour,

J'ai trouvé sur le web ce script qui permet de vérifier si un fichier est bien présent sur mon serveur.
<?
$photo = "photo1.jpg";
echo ($photo);
if (file_exists($photo)) {
echo ("<P>La photo existe </P>");
} else {
echo ("<P>La photo n'existe pas </P>");
}
?>
Ce script m'est très utile pour le site que je souhaite développer mais le seul soucis, c'est que le numéro présent entre photo et .jpg (dans ma variable photo) doit être le numéro que l'on trouve dans mon URL (qui correspond à l'identifiant de mon produit).
Etant novice en PHP, j'espere que vous pourrez m'aider !!!

Merci de votre aide.

Eléphant du PHP | 61 Messages

08 nov. 2007, 20:23

Tu veux que le numero 1 correspondent à photo1.jpg ? :o
Site sur THEOPERATION M.D. -> Nouvelle version (100%)
Ton code, tu indenteras; et le bohneur, tu feras.

Will
Invité n'ayant pas de compte PHPfrance

09 nov. 2007, 10:49

Tout à fait Power Web.

En fait j'ai plusieurs produits (produit 1, produit 2, produit 3, ...). Dans ma base de données, l'ID de mon produit 1 est le 1. La photo de mon produit 1 s'appelle photo1.jpg, la photo de mon produit 2 s'appelle photo2.jpg, ...
En fait je voudrais que se mette automatiquement le numéro d'ID entre photo et .jpg. Car par la suite, pour les produits n'ayant pas de photo, je voudrais mettre une image avec "Photo non disponible" marqué dessus.

En vous remerçiant.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

09 nov. 2007, 11:16

Ta variable $photo contient une chaine (en l'occurence "photo1.jpg"). Cette chaine tu peux soit la spécifier en dur comme ici, soit la construire dynamiquement en concatenant (mettant bout à bout) différentes chaines, par exemple :
$photo = "photo" . "1" . ".jpg";
A partir de là, tu peux remplacer certaines de tes chaines par des variables contenant la même valeur :
$var = 1;
$photo = "photo" . $var . ".jpg";
Tu peux ainsi rendre dyanmique la valeur de ta variable photo en récupérant une valeur de $_GET à la place de mon $var :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Will
Invité n'ayant pas de compte PHPfrance

09 nov. 2007, 11:28

Merci pour votre aide ;-)

Eléphant du PHP | 61 Messages

09 nov. 2007, 17:11

Salut,

La solution de Ryle, dans ce cas là, est très appropriée, mais il y en a une autre !

Par exemple, on veut voir le fichier pages/includes/site_photos.php mais dans l'adresse il y a page=photos
Un array serai le mieux ;)
<?php
$file_assoc = array(
"photos" => "pages/includes/site_photos.php");

if(file_exists($file_assoc[$_GET['page']]))
{
     include($file_assoc[$_GET['page']]);
}

else { include("index.php"); }
?>
Voilà c'est une autre solution mais bon le problème c'est que tu seras toujours obligé de définir dans le array à quoi équivaut chaque fichier ;)

tu peux même aussi rajouter un array_key_exists() ;)

Aurevoir.
Site sur THEOPERATION M.D. -> Nouvelle version (100%)
Ton code, tu indenteras; et le bohneur, tu feras.