Rechercher : dans
Par :

[php]comment lire une ligne avec fgets

Dernière réponse le 21 aoû 2006 à 21:56:34 david, le 26 avr 2006 à 20:29:55 
 Signaler ce message aux modérateurs

Bonjour,

j'aimerais savoir si c'est possible de lire un numéro de ligne spécifique avec la fonction fgets, ou si je doit passer par d'autre fonctions.

J'ai récupéré ce code

< ?php
$fichier = fopen("essai.txt","r");
$premier = fgets($fichier, 10);
echo "Dix Premier Caractères : " . $premier;
fclose($fichier);
?>

mais je pense qu'il va lire les dix premières lignes à partir du début du fichier, mais comment faire pour lire à partir de la troisième ligne par exemple.
merci

David.

Meilleures réponses pour « [php]comment lire une ligne avec fgets » dans :
Comment lire un fichier ligne par ligne VoirComment lire un fichier ligne par ligne Préambule Boucle while Syntaxe Exemple Astuces Bonus Boucle for Syntaxe Préambule Une des erreurs les plus communes dans l'apprentissage des scripts "bash" sous GNU/LInux pour lire un fichier...
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
[PHP] Lister le contenu d'un répertoire VoirGrâce à PHP, il est possible d'afficher le contenu d'un répertoire et de ses sous-répertoires. Voici ci-dessous une fonction permettant de parcourir récursivement les répertoires et sous-répertoires et d'en afficher les fichiers : function...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...
PHP - Les cookies et les en-têtes HTTP VoirLes en-têtes HTTP Lors de chaque échange par le protocole HTTP entre votre navigateur et le serveur, des données dîtes d'en-têtes contenant des informations sur les données à envoyer (dans le cas d'une requête) ou envoyées (dans le cas d'une...

1

missy, le 21 aoû 2006 à 14:36:26

Je suis entrain de travailler un projet en php
mais je ne sais pas comment faire pour lire une ligne à partir d'un fichier texte tout en gardant son format comme il est c'est à dire je veut garder les espaces et les tabulations qui se trouvent dans la chaine de caractére
j'ai essayer avec fscanf et avec fgets mais ca lit une chaine te neléve tout les espaces et les tabulations

Répondre à missy

2

poof65, le 21 aoû 2006 à 15:08:59

Il me semble que le 2e paramètre de fgets est le nombre max de caractères à lire, ce qui n'est pas ce que tu veux.

Une solution simple pour lire une certaine ligne est de remplir le fichier dans un tableau (avec file()) et de lire la ligne désirée.

Cette solution à le désavantage d'être très couteuse sur les gros fichiers. Dans ce cas il faut lire le fichier depuis le début jusqu'a la ligne désirée (en comptant les retours à la ligne rencontrées).
--------------------------------------------------------
L'informatique est un long fleuve pas tranquille !!!

Répondre à poof65

3

 missy, le 21 aoû 2006 à 21:56:34

Merci,
mais au fait le fichier sur lequel je travaille est très volumineux c'est un fichier texte brute de taille 3.48 mo !!!!
au fait c'est un fichier tirer du serveur ( le serveur MSC pour le réseau gsm)
au fait l'application que je suis entrain de développé va servir à la société dans laquelle je suis entrain de faire un stage à controller le trafic sur le réseau gsm d'un opérateur dans mon pays.....
je suis etrain de faire une application avec easyphp qui doit pouvoir extraire les valeur des copmteurs à partir du fichier pour remplir la base de données, j'ai déjà créer la base de données et la table qui contient les champs qui sont tous les compteurs présent dans le fichier
il me reste le remplissage de la base de données mysql avec les valeurs des copmteur qui se trouvent dans le fichier texte
le probléme c'est que quand j'utilise fgets pour lire le fichier ligne par ligne , toute la ligne est considéré comme une seule chaine de caractére
mais moi dans la meme ligne j'ai le nom du compteur ainsi que les différentes valeurs de ce compteur
/*****extrait de quelques ligne du fichier texte sur lequel je travaille******/

9760COMMAND SUBMITTED
MSC6/CT1M06MPS/MTOMPK1V5308-069/006 06-02-15 10:33:559760 SC CPADM007 2893/00880 GETTRAFILE:FILE=MF.USMM.CY4,BEG=06-02-14,TER=06-02-14;

TRAFFIC MEASUREMENT : PRELIMINARY DATA

JOBNO MEASUREMENT VARIANT VERSION SCAN JOB EXCH FILENAME
TYPE SVA SFV TIME TYPE ID
-----+-------------+-------+-------+----+-------+-----+-----­------------
USMM G0 53 15 CYCLIC MSC6 MF.USMM.CY4

BEGIN END INTERVAL PERIODS
-------------------------------------
INTERRUPTION TEXT JOB 9760
MSC6/CT1M06MPS/MTOMPK1V5308-069/006 06-02-15 10:33:599760 SC CPADM007 2893/07690 GETTRAFILE:FILE=MF.USMM.CY4,BEG=06-02-14,TER=06-02-14;

TRAFFIC MEASUREMENT 06-02-14 00:00-00:15
------------------- DATA QUALITY : SECURE
MOBILE SERVICES SWITCHING CENTER (MSC) - GENERAL PART
MISCELLANEOUS PART

DESCRIPTION COUNTER
------------------------------+-------
NUM_RESET 0
NUM_RESET_CIRCUIT 0
NUM_SSP_BSSAP 0
NUM_SIGN_POINT_PROHIB 0
NUM_CALLS_REL_BS 0
NUM_RECEIVED_OVERLOAD 0
NUM_SEND_OVERLOAD 0
NUM_RECEIVED_GCP 0
NUM_RECEIVED_CIP 0
NUM_RECEIVED_CLASSM_UPD 59277
NUM_TOTAL_START_IMEI_CHECK 26454
NUM_IMEI_CHECK_WHITE 26454
NUM_IMEI_CHECK_GREY 0
NUM_IMEI_CHECK_BLACK 0
NUM_IMEI_CHECK_UNKNOWN 0
NUM_IMEI_CHECK_LUP 4153
NUM_IMEI_CHECK_PER_LUP 1
NUM_TONES_DTMF 348
NUM_NO_SPCH_BSSAP_LTG 0
NUM_ATT_SCP_DIALOGS_LNP 0
NUM_SUCC_SCP_DIALOGS_LNP 0
LNP_QUERIES_LRN 0
LNP_MISROUTED_CALL 0
LNP_UNALLOC_NUM_MICTR 0
LNP_VACANT_CODE 0
NUM_ATT_SCP_DIALOGS_SMS 1670
NUM_ATT_SCP_DIALOGS_USSD 0
NUM_SWITCH_LTGPOOL 0END TEXT 9760
MSC6/CT1M06MPS/MTOMPK1V5308-069/006 06-02-15 10:34:029760 SC CPADM007 2893/06833 TRAFFIC MEASUREMENT
-------------------
MOBILE SERVICES SWITCHING CENTER (MSC) - GENERAL PART
TIME / DURATION RELATED PART (1) OF (2)

DESCRIPTION COUNTER
------------------------------+-------
TIME_CALL_SET_U_SERV 34760
NUM_CALL_SET_UP_CONTRIB 22410
TIME_LUP_SERV 23732
NUM_LUP_CONTRIB 14564
TRAFF_VOL_SUCC_PAGING 234624END TEXT 9760
MSC6/CT1M06MPS/MTOMPK1V5308-069/006 06-02-15 10:34:049760 SC CPADM007 2893/06832 TRAFFIC MEASUREMENT
-------------------
MOBILE SERVICES SWITCHING CENTER (MSC) - GENERAL PART
TIME / DURATION RELATED PART (2) OF (2)

DESCRIPTION MOBILE MOBILE MOBILE MOBILE MOBILE MOBILE
ORIGIN OUTG OUTG TERMIN INCOM TRANS
TRAFF PLMN NOT TRAFF TRAFF TRAFF
PLMN
------------------+--------+--------+--------+--------+-----­---+--------
TRAFFIC_VOLUME 498201 78865 228943 467805 357773 2326
D_CONV_SPEECH_SERV 56528 170230 325134
D_CONVERSATION 40
D_CONV_DATACDA_ANA 0 0 0
D_CONV_DATACDA_DIG 0 0 0
D_CONV_ALTFAXSP 0 0 0
D_CONV_FAX3 0 0 0
D_CONV_DED_PAD 0
D_CONV_DATACDS_ANA 0 0 0
D_CONV_DATACDS_DIG 0 0 0
D_ALT_SPEECH_DATA 0 0 0 END TEXT 9760
MSC6/CT1M06MPS/MTOMPK1V5308-069/006 06-02-15 10:34:069760 SC CPADM007 2893/40245 GETTRAFILE:FILE=MF.USMM.CY4,BEG=06-02-14,TER=06-02-14;

TRAFFIC MEASUREMENT
-------------------
UMTS MOBILE SERVICES SWITCHING CENTER (UMSC) - GENERAL PART
TIME / DURATION RELATED PART

DESCRIPTION MOBILE MOBILE MOBILE MOBILE
ORIGIN OUTG OUTG TERMIN
TRAFF PLMN NOT TRAFF
PLMN
--------------------+--------+--------+--------+--------
U_TRAFFIC_VOLUME 0 0 0 0
U_D_CONV_SPEECH_SERV 0 0 0END TEXT 9760
MSC6/CT1M06MPS/MTOMPK1V5308-069/006 06-02-15 10:34:089760 SC CPADM007 2893/06830 TRAFFIC MEASUREMENT
-------------------
MOBILE SERVICES SWITCHING CENTER (MSC) - GENERAL PART
LOAD AND DEMAND RELATED PART (1) OF (2)

/***fin de l'extrai***/

c'est juste pour etre plus claire

et merci d'avance
cordialement missy,

Répondre à missy