Retour en début de fichier

Signaler
Messages postés
33
Date d'inscription
mardi 21 février 2006
Statut
Membre
Dernière intervention
19 août 2006
-
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
-
Dans un programme que je développe,

j'utilise un fsockopen, puis, pour renvoyer à l'écran les informations

j'ai une fonction me permettabnt d'éviter les différents caractères spéciaux:

mais je ne parviens pas à faire lire à cette fonction uniquement les
lignes remplies, à chaque fois elle se rend jusqu'en fin de fichier

(temps de chargement de dingues)

et cela me pose le probleme que si j'utilise plusieurs fois cette
fonction le pointeur est en fin de fichier et je ne parvient pas à
entrer ds la boucle me permettant de mémoriser les caractères.



Je souhaiterais donc savoir si il était possible de faire un retour en début de fichier...



merci d'avance

11 réponses

Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Hello,

rewind ($pointeur_fichier);
ou fseek ($pointeur_fichier, 0)
Messages postés
33
Date d'inscription
mardi 21 février 2006
Statut
Membre
Dernière intervention
19 août 2006

je viens d'essayer mais cela me dis que la parametre entré dans rewind n'est pas valide

alors que fsockopen renvoie un pointeur de fichier non ?
Messages postés
2268
Date d'inscription
mercredi 27 novembre 2002
Statut
Membre
Dernière intervention
13 septembre 2013
3
Salut!
Ca devrait jouer, normalement.... Il est ouvert en quel mode, ton fichier?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...

"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
Messages postés
33
Date d'inscription
mardi 21 février 2006
Statut
Membre
Dernière intervention
19 août 2006

j'ai utilisé fsockopen
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Fais voir ton code ?
Messages postés
33
Date d'inscription
mardi 21 février 2006
Statut
Membre
Dernière intervention
19 août 2006

function read_till($socket)

{

//on initialise la variable $buf

$buf = '';

while (!feof($socket))

{

//on défini les caractère spéciaux qui l'on peut recevoir

$IAC = chr(255);

$DONT = chr(254);

$DO = chr(253);

$WONT = chr(252);

$WILL = chr(251);



//on récupère un caractère

$c = fgetc($socket);



if (!$c)

{

//on l'ignore

//et on passe à la boucle suivant

continue;

}



//$c n'est pas le caractère 255 de la table ascii => ÿ

//le caractère ÿ est présent dans l'entête lors de la connexion telnet

//=>il faut donc l'éviter

if ($c != $IAC)

{

//on ajoute $c à $buf

$buf .= $c;

//et on passe à la boucle suivante

continue;

}



//on récupère à nouveau un caractère

$c = fgetc($socket);



//on évite les caractère spéciaux présent dans l'entête de connexion telnet

if (($c $DO) || ($c $DONT))

{

$opt = fgetc($socket)();

fwrite($this->sock,$IAC.$WONT.$opt);

}

elseif (($c $WILL) || ($c $WONT))

{

$opt = fgetc($socket)();

fwrite($this->sock,$IAC.$DONT.$opt);

}

}

return ($buf);

}





fwrite($sock,"user\r\n");

$retour=read_till($sock);

echo ($retour);

fwrite($sock,"mot de passe\r\n");

$retour=read_till($sock);

echo ($retour);

fwrite($sock,"su -\r\n");

$retour=read_till($sock);

echo ($retour);
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
il est où le fsockopen () ? et tu veux te déplacer comment dans ce fichier, au juste ?
Messages postés
33
Date d'inscription
mardi 21 février 2006
Statut
Membre
Dernière intervention
19 août 2006

oups j'ai oublié de le mettre.

il est avant le fwrite



je me deplace ds le fichier avec les fgetc de la fonction read_till qui est appelée apres chaque fwrite
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Oui ça d'accord, mais je veux dire, ton rzwind, tu veux le mettre où ? A quel moment veux tu retourner au début du fichier ?
Messages postés
33
Date d'inscription
mardi 21 février 2006
Statut
Membre
Dernière intervention
19 août 2006

pour tester j'ai mis mon rewind dans la fonction read_till, apres l'initialisation de $buf



logiquement ca devrait me renvoyer 3 fois la même chose avec quelques lignes supplémentaires à la fin
Messages postés
10840
Date d'inscription
lundi 24 février 2003
Statut
Modérateur
Dernière intervention
2 mars 2010
23
Essaye le avant l'appel à ta fonction (donc hors fonction).