existence de fichier ( PHP)
Hors ligneXeon Le 13/07/2005 à 15:40 Profil de Xeon Configuration de Xeon

Bonjour,

Je suis webmaster et j'ai plusieurs comptes free qui me permettent de stocker des fichiers. En fait j'aimerais savoir comment on pouvait detecter l'existence de fichier sur un compte différent de celui où se situe le script. Les fonctions "file_exists" ou "is_file" permettent seulement de savoir si un fichier existe mais sur le même compte.

Je m'explique :

une page web se situant sur "http://moncompte1.free.fr" contient les lignes de codes suivant :

"<?php if(file_exists('index.php')) {?> <img src="online.jpg"  border="0"><?php }>" affichera l'image online.jpg

par contre si la ligne de code est "<?php if(file_exists('http://moncompte1/index.php')) {?> <img src="online.jpg"  border="0"><?php }>"
ou encore "<?php if(file_exists('http://moncomptenumero2/index.php')) {?> <img src="online.jpg"  border="0"><?php }>" ne l'affichera pas.

Existe-t-il un autre moyen pour connaitre l'existence de fichier?

Je vous remercie d'avance.

PS : bravo pour le site, il est vraiment bien fait : clair et concis ya rien à redire
--
[NO FUTURE]
Hors ligneAnthony Le 13/07/2005 à 15:53 Profil de Anthony Configuration de Anthony

Admin
Salut,

tout d'abord merci pour les compliments, ça me fait toujours plaisir

Pour vérifier l'existence d'un fichier tu peux utiliser la fonction fsockopen() : Fonction fsockopen()

Ou encore la fonction fopen() (si elle te renvoit une erreur le fichier n'existe pas) : Fonction fopen()

Voilà n'hésite pas si tu as encore un problème
--

Hors ligneFanch Le 13/07/2005 à 15:55 Profil de Fanch Configuration de Fanch

WAUGH !

Peut-être trouveras-tu ton bonheur là-dedans :
http://fr.php.net/manual/fr/features.remote-files.php
--
<waugh>Salutations à toi paisible surfeur !</waugh>
Hors ligneXeon Le 13/07/2005 à 16:41 Profil de Xeon Configuration de Xeon

euh...effectivement j'ai quelques pitits soucis encore

la fonction fopen marche sans problème (bon elle est un peu lente mais ça fonctionne^^).Seulement je ne souhaite pas que mes erreurs soient affichées donc je privilègie plutôt la fonction fsockopen. Le problème réside ensuite dans l'utilisation de la fonction fsockopen... en recherchant j'ai trouvé ceci :

fsockopen($url,$port,$errno,$errstr,$timeout)

j'essaye avec

<? if(fsockopen("http://moncompte.free.fr",80,$errno,$errstr,30) {?> <img blabla...
et ça ne marche pas (2 messages d'erreurs) (je peux accéder à mon compte donc le problème ne vient pas de là ;( ).

Pourriez vous m'éclairer davantage s'il vous plaît
--
[NO FUTURE]
Hors ligneAnthony Le 13/07/2005 à 16:57 Profil de Anthony Configuration de Anthony

Admin
Si tu ne souhaites pas que tes erreurs soient affichées :

<?php if(@fopen('url','r')) { //ok c'est bon } else { echo 'erreur'; } ?>

Ensuite pour le fsockopen il ne faut pas mettre http:// devant c'est aussi pour ça :-)
--

Hors ligneXeon Le 15/07/2005 à 11:33 Profil de Xeon Configuration de Xeon

okai je pense que je devrai me débrouiller avec ça!
merci beaucoup! vous êtes super^^
--
[NO FUTURE]
Hors ligneGraal Le 17/07/2005 à 17:08 Profil de Graal Configuration de Graal

C'est aussi possible avec la fonction file_get_contents.
(fopen() est cependant plus rapide d'après mes benchs)
--
Vacances r0xx0r pas d'cours cay trop fort §
Hors ligneAnthony Le 17/07/2005 à 19:25 Profil de Anthony Configuration de Anthony

Admin
D'après les miens aussi :

Optimiser PHP
--

Hors ligneXeon Le 18/07/2005 à 10:14 Profil de Xeon Configuration de Xeon

merci beaucoup de votre aide. Toutes ces fonctions marchent à merveille seulement......elles affichent toutes les erreurs quand le fichier n'existe pas ou quand ce n'est pas possible de se connecter (même avec if et else). Cela peut-il être dû à free.Je n'en sais rien enfin bon merci beaucoup de votre aide
--
[NO FUTURE]
Hors ligneAnthony Le 18/07/2005 à 10:22 Profil de Anthony Configuration de Anthony

Admin
Pour masquer les erreurs tu peux utiliser le @ devant la fonction, ça masque l'erreur, mais je te conseille de faire ta propre gestion d'erreur ,c'est à dire que tu mets un @ pour ne pas afficher l'erreur de php, mais tu gères au cas où il y a une erreur via un if/else par exemple, comme je l'ai fait plus haut pour la fonction fopen.

a +
--

Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels