pitit souci avec fopen

Répondre
dooper
le 08/12/2003 à 18:53
dooper
voila j'ai un script ki ecrit le topic la liste d'user et ce ki est dit sur un salon dans 3 fichiers html

avant mon site était en local et je récupérais directement c fichier via :

//ouverture des pseudos
// Lit le fichier pseudos
$filename = "".$chan."_user.html";
$handle = fopen ($filename, "r");
$pseudos = fread ($handle, filesize ($filename));
fclose ($handle);
// Lit le fichier topic
$filename = "".$chan."_title.html";
$handle = fopen ($filename, "r");
$topic = fread ($handle, filesize ($filename));
fclose ($handle);
// Lit le fichier chat
$filename = "".$chan."_chat.html";
$handle = fopen ($filename, "r");
$tchat = fread ($handle, filesize ($filename));
fclose ($handle);
//fin d'ouverture des fichiers


mais le souci c ke mnt j'ai mis mon site sur un hebergeur autre ke chez moi et j'aimerais récupérer de la meme manière ses trois fichiers ...

j'ai essayé de mettre par exemple :
$filename = "http://mon_host/dossiers/".$chan."_chat.html";

mais apparement le fopen n'ouvre pas les fichier distant :(

aidé moi chui bloqué :(
LA GLOBULE
le 08/12/2003 à 19:40
LA GLOBULE
C'est normal que tu ne puisses pas ouvrir un fichier distant (raison de securite).

Avec un fsockopen, ca devrait passer, mais je n'ai jamais travailler avec ca.
dooper
le 08/12/2003 à 20:14
dooper
mmhhh comment marche un fsockopen ?

j'ai fais ca :

$filename = "http://".$ip."/ouest/le_mur/".$chan."_user.html";
$handle = fsockopen ($filename, "r");
$pseudos = fread ($handle, filesize ($filename));
fclose ($handle);

avec en variable $ip mon ip :)

bien sur j'ai aucun probleme pour ouvrir le fichier via mon navigaeur il est donc valide :(
LA GLOBULE
le 08/12/2003 à 20:19
LA GLOBULE
Le manuel PHP est pourtant clair :)

fsockopen() crée un flôt de connexion à l'Internet (AF_INET) ou à un domaine Unix (AF_UNIX). Via Internet, cette fonction va ouvrir une socket de connexion TCP avec l'hôte target sur le port port. Pour les connexions UDP, vous devez explicitement spécifier le protocole : udp://target. Via un domaine Unix, target représente le chemin jusqu'à la socket, et port doit être mis à 0. L'option timeout sert à donner une durée maximale à cet appel.

fsockopen() retourne un pointeur de fichier qui peut être utilisé avec d'autres fonctions fichiers, telles que fgets(), fgetss(), fputs(), fclose() et feof().

smiley (pas de fread ^^)
LA GLOBULE
le 08/12/2003 à 20:20
LA GLOBULE
Enfin, je sais pas, j'ai jamais fait çà, mais ca doit pas etre "infaisable"....
dooper
le 09/12/2003 à 16:41
dooper
comment tu ferais pour remplacer mon ptit bou de script avec un fsockopen :

$filename = "http://".$ip."/ouest/le_mur/".$chan."_user.html";
$handle = fopen ($filename, "r");
$pseudos = fread ($handle, filesize ($filename));
fclose ($handle);

qq1 peut me faire un ptit modèle :(
seb
le 09/12/2003 à 17:12
seb
je n'en sais pas plus que toi (ou la Globule sur ce coup là smiley) mais tu peux aller lire les exemples du manuel , .
à mon avis ton script ressemblera à qqc comme ça (excuse les erreurs possibles, c'est au jugé...) :

$filename = "http://".$ip."/ouest/le_mur/".$chan."_user.html";
$fp = fsockopen($filename , 80, &$errno, &$errstr, 30);
if($fp){
fgets($fp,filesize ($filename));
fclose($fp);
}

A mon avis , y' a de koi déboguer !
fonKySeB from Hyperion <br>::Si quelque chose peut mal tourner, alors ça tournera mal::
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours