Page 1 sur 2
Tester la présence d'un fichier distant ou d'une url...
Posté : 08 janv. 2007, 12:59
par Korg
Bonjour et bonne année à tous !!!!
Je me tourne vers vous en ce début d'année pour appeler "AU SECOURS !" car je n'en peux plus de ce problème récurent qui je pense doit bien avoir sa solution.
Je cherche à tester l'existence d'un fichier distant ou bien d'une url (même démarche certainement) et rien ne me fonctionne comme je veux. Utilisation d'is_file, is_dir, is_link, remote_file, ouverture de flux, ca veut pas !!! Que faire ? J'ai beaucoup appris avec ce souci mais là je sèche...
Merci de votre aide.
Korg
Posté : 08 janv. 2007, 13:20
par AB
A ma connaissance il n'y a que les images que l'on peut tester sur un serveur distant avec un getimagesize.
Et s'il est possible de faire plus, j'aimerais bien le savoir également...j'ai déjà cherché un peu aussi dans ce sens sans succès.
Posté : 08 janv. 2007, 13:23
par Ryle

Voir le topic
http://www.phpfrance.com/forums/voir_sujet-26022.php cinq lignes plus bas...
Mais en faisant une recherche sur le forum, vous devriez pouvoir en trouver plein d'autres

Posté : 08 janv. 2007, 15:54
par AB
Ben merci Ryle,
Il est vrai qu'à l'époque je n'avais pas cherché sur phpfrance
Donc si j'ai bien compris, pour ceux (dont je fais partie) qui n'ont pas PHP5 :
<?php
function url_exists($url)
{
$handle = @fopen($url, "r");
if ($handle === false)
return false;
fclose($handle);
return true;
}
if(url_exists('http://phpfrance.com')) echo 'oui <br />'; else echo 'non <br />' ;
?>
mais ça prend du temps quand il y a beaucoup d'url à tester
et pour ceux qui ont PHP5, on peux tenter un file_exists()
Posté : 08 janv. 2007, 15:57
par Korg
Ok mais c'est jamais clairement élucidé...Perso, je dois tester la présence d'un fichier mp3 sur un serveur distant et la fonction file_exists() n'est valable qu'en local

. Je vais quand même jeter un oeil aux commentaires du topic mais c'est bizarre de ne pas trouver clairement son bonheur...
Korg
Posté : 08 janv. 2007, 16:02
par Korg
Ok AB. J'ai testé ton script, mais chez moi je dis bien chez moi y'a un hic !
Quand j'indique une fausse url, j'ai ma réponse instantannée "non" mais dès que je précise une bonne url ca mouline et je tombe sur la page :
Impossible d'afficher la page
La page que vous recherchez est actuellement indisponible. Le site Web rencontre peut-être des difficultés techniques ou il vous faut peut-être modifier les paramètres de votre navigateur.
... ... ...
Je vois pas d'où ca peut venir...Quelqu'un a déjà rencontré ce problème ?
Korg
Posté : 08 janv. 2007, 16:22
par Korg
ou bien, depuis un autre serveur, il ne me reconnait pas les bonnes url et me les mets en "non".
Korg
Posté : 08 janv. 2007, 16:32
par Korg
Désolé pour cette 3ème intervention successive, vraiment désolé mais désespéré. Apparemment le script d'AB marche qu'en local (une fois de plus grrrr). J'obtiens toujours un "non" si je mets par exemple
http://www.phpfrance.com/documentation.php mais un "oui" si le lien mentionné fait référence au serveur sur lequel se trouve la page qui éxécute mon script.
Korg
Posté : 08 janv. 2007, 17:56
par Korg
Personne pour m'aider ?
svp
Korg
ze solution
Posté : 08 janv. 2007, 18:07
par toto37
si tu fait fopen vers autre serveur et que ca marche pas c'est normal tu n'as pas les droit en lecture, tu vien de l'extérieur donc té bloké par le firewall.
ze solution
Posté : 08 janv. 2007, 18:10
par toto37
c'est pour cela que ca marche local TOUT SIMPLEMENT.
t'imagine le trou se sécurité sinon? n'importe qui peut faire n'importe quoi sur un serveur distant?.
Si tu est dans une entreprise et que les machines (serveur qui exécute le script et serveur que tu doit checker) appartiennent au même réseau ou pas de la même entreprise demande au service réseau d'ouvrir les vannes ^^ ca réponds à ta question?
Posté : 08 janv. 2007, 18:42
par AB
Korg
Désolé, je sais pas quoi répondre.
J'ai testé le script que je t'ai indiqué en le mettant chez Free puis sur chez un hébergeur professionnel puis en testant des fichiers distants mp3, AVI et des url et ça fonctionne sans pb.
Peut-être que tu veux tester trop de fichiers à la fois...ou que les fichiers en question sont dans un répertoire protégé à la lecture.
ze solution
Posté : 08 janv. 2007, 21:48
par toto37
en effet c'est protégé en lecture (merci d'avoir lu ce que j'ai écri)
Posté : 08 janv. 2007, 23:30
par AB
toto37
J'ai bien lu ce que tu as écris, mais cela prête à confusion. Si les fichiers sont lisibles sans passer par une authentification, il faut bien qu'ils soient lisibles au moins en lecture (cela ne veut pas dire qu'on peut les modifier).
J'ai fais une dizaine d'essai sur des fichiers mp3 qui sont proposés en lecture sur différents sites distants et ça marche sans pb avec le code mentionné plus haut.
Et je suppose que si Korg veut faire des tests sur des fichiers mp3 distants, il ne le fait pas sur des fichiers protégés (ou dont le répertoire est protégé). Sinon ça va retourner false bien entendu.
D'où mon incompréhension...

Posté : 09 janv. 2007, 11:00
par Korg
Re et merci ... ... ... pour vos interventions.
Pour clarifier un peu le truc, j'essaie juste d'interroger si un et un seul et unique fichier mp3 est présent ou pas sur un serveur de streaming (protocole mms donc).
J'ai retesté chez moi le script sur des serveurs persos (ex:
http://images.google.fr/intl/fr_ALL/ima ... es_res.gif) et là, ca semble fonctionner correctement comme annoncé par AB sauf pour mon test vers le serveur de stream alors que le fichier est bel et bien présent. D'où cela peut venir alors ? Paramétrages serveur certainement mais quoi ? Mon firewall ?
Korg