Fichier existent sur un autre serveur

Mammouth du PHP | 725 Messages

13 sept. 2012, 10:51

Bonjour,

J'utilise la commande file(url/fichier.mp3) pour verifier si ce fichier.mp3 existe sur un autre serveur, ca prend du temps pour me retourner la reponse, y a t il une autre methode pour le faire, sachant que les 2 serveurs m'appartiennent.

Cordialement

ViPHP
xTG
ViPHP | 7331 Messages

13 sept. 2012, 11:30

file() lit le fichier et te retourne chaque ligne dans un index d'array.
Donc si c'est tester l'existence c'est pas la bonne méthode.
Regardes du côté de file_exists() ;)

Mammouth du PHP | 725 Messages

13 sept. 2012, 16:07

file_exists ne peut pas verifier une url, une location simple:

ca peut faire:
file_exists(fichier.mp3)
mais pas:
file_exists(http://www.site.com/fichier.mp3)

ViPHP
xTG
ViPHP | 7331 Messages

13 sept. 2012, 16:11

Mais si, mais si. ;)
Mais comme toute fonction sur les fichiers impliquant une machine distante elle est dépendante de la configuration du paramètre allow_url_fopen du php.ini.

Mammouth du PHP | 725 Messages

13 sept. 2012, 16:43

Mais si, mais si. ;)
Mais comme toute fonction sur les fichiers impliquant une machine distante elle est dépendante de la configuration du paramètre allow_url_fopen du php.ini.
je l'ai essaye meme avec l'option ON:
allow_url_fopen = On
ca donne fichier inexistent, par contre avec file, ca marche:
<?php

$MP3_file = 'http://www.site.com/Downloads/Medias/001.mp3';

if(file_exists($MP3_file))
{
	echo 'exists';
}
else
{
	echo 'no';
}
?>

<br />
<?php
//001.mp3
 $fichier = file($MP3_file);
 
 if($fichier)
 {
	 echo 'fichier 001.mp3 exists';
 }
 else
 {
	 echo 'fichier 001.mp3 inexistent';
 }
?>

ViPHP
xTG
ViPHP | 7331 Messages

13 sept. 2012, 16:52

Hum exact, le protocole http est pas disponible pour la famille stat, lu un peu trop vite...

Bon sinon fopen(). ;)

Mammouth du PHP | 725 Messages

13 sept. 2012, 17:23

Les fichiers distants sont traites de la meme reponse serveur, soit: fopen, file,.. ou autres fonctions (file_get_contents)

Merci xTG

ViPHP
xTG
ViPHP | 7331 Messages

14 sept. 2012, 08:51

Oui sauf que seul fopen() te permettra de juste ouvrir le fichier sans avoir besoin de le lire.
Du coup cela revient strictement à un test d'existence.
Alors que file_get_contents() par exemple te retournera comme file() tout le contenu.

N.B : penser à fclose() ^_^

Mammouth du PHP | 725 Messages

17 sept. 2012, 15:11

N.B : penser à fclose() ^_^
Merci beaucoup :)