fgets

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : fgets

par cerber » 12 août 2005, 10:00

1er probleme : En ascii 1 octet = 1 caractère donc fgets va te ramener 1095 caractères

2eme probleme :
Note : Le paramètre length est devenu optionnel depuis PHP 4.2.0. Si il est omis, il prend la valeur par défaut de 1024. Depuis PHP 4.3.0, omettre le paramètre length fait que la fonction va continuer à lire le flux jusqu'à ce que la ligne s'achève. Si la majorité des lignes du fichier dépassent les 8 ko, il est plus efficace pour votre script de spécifier ce paramètre.
autrement dit, si tu est en php 4.3+ tu fait des fgets sans le second parametre.
Tu récupère donc une ligne, tu regarde si c'est la dernière de celles qui t'intéressent et si c'est le cas tu stoppe la boucle (break;) sinon tu continue jusqu'a eof

par HD » 12 août 2005, 03:31

en plus de la question precedente en voila une autre :
$fp = fopen("http://www.site.com","r"); //lecture du fichier
if (!isset($page)) $page="";        // creer $page si elle n'existe pas
while (!feof($fp)) { //on parcourt toutes les lignes
  $page .= fgets($fp, 1096);        // lecture du contenu de la ligne
}
en fait ce script est lent car il recupere toute la page alors que je n'ai besoin que des 1eres lignes.
je dois mettre quoi à la place de
(!feof($fp)) 
:?:
d'autres solutions pour le rendre plus rapide :?:
merci

fgets

par HD » 12 août 2005, 03:24

encore moi :oops:
fgets() retourne la chaîne lue jusqu'à la longueur length - 1 octet
cela fait combien de caracteres ?
et quand je fais
fgets($fp, 1096)
1096 c'est le nombre d'octets donc (ou de caracteres voire de ligne)?
merci[/quote]