affich un contenu de fichier a partir d'une ligne precise

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 : affich un contenu de fichier a partir d'une ligne precise

par ma_pomme » 18 mars 2006, 12:36

un petit UP :oops:

Donc comment faire une boucle et ne pas reprendre la meme ligne a chaque fois :(

par ma_pomme » 16 mars 2006, 12:17

ben je souhaite recupere toutes les données mais que si j'appel l'une des cinq premiere ça recupere toute celles de la ligne auquelle elle appartient

voici ce que j'ai fais mais je n'arrive a recupere que la premiere ligne :(
<?php
$cont = file_get_contents('fichier.txt');
preg_match('`#donnees(.*)`s', $cont, $matches);

$donnees = nl2br($matches[1]);
list($coordonnees, $lune, $alliance, $planete, $joueur) = explode(";", $donnees);  

echo $coordonnes;
echo $lune;
echo $alliance;
echo $planete;
echo $joueur;
?> 
bon par la suite il faudra que j'envoi sur la base comme ça je pense
mysql_connect('host', 'user', 'pass');
mysql_select_db('base');

       mysql_query($coordonnees, $lune, $alliance, $planete, $joueur); //La requête

mysql_close(); 

Je pense qu'il faudrait une boucle pour récupéré les lignes suivantes mais comment faire pour ne pas reprendre a chaque fois la ligne 1

par tomypunk » 16 mars 2006, 11:40

ou tu peux utiliser la fonction list() c'est assez pratique mais je sais pas si ça correspond a ce que tu veux faire, surtout si tu l'utilise avec le explode
voir la doc

par mario » 16 mars 2006, 11:28

Que souhaites tu récupérer dans cette ligne ?
ps: jète un oeil sur la fonction explode: http://fr.php.net/explode
ça te permet de découper la chaîne grâce au séparateur ';'

par ma_pomme » 16 mars 2006, 10:11

toute les lignes sont faite de la meme façon

une ligne complete donne ça
2:201:6;M;BSG 75;Le Compte de Lisle;sami;1;0;3;4;6;15;27;1531764;327993;116517;29700;22;0;38;0;0;0;0;0;0;0;0;8250;0;0;2;7650;6300;1000;90;0;85;1;1;60;0;2;26;24;24;26;0;10;2;12;10;6;8;12;2;6;0;0;0;2;11;11;13;12;13;12;8;12;7;7;10;6;7;2;1;2;;1;0;3;4;6;15;27;0;0;19136;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;2;441;0;0;0;0;0;1;0;0;0;2;0;0;0;0;0;4;0;1;0;0;0;0;0;0;5;5;0;2;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;0;


mais une grande parti ne font que ça
2:201:7;;G8 B.D.E;alchemist;ichigo57;0;

par mario » 16 mars 2006, 09:01

:? c'est la deuxieme :?

Mais c'est quoi une moulinette :? :?

Car chaque ligne contiens plusieur données et quand une données est cherché il faut que je recupere la ligne complete :? :?
j'appelle une moulinette une transformation automatique de donnée.
file_get_contents() ne convient pas pour ce que tu souhaites faire car tout est stocké dans une seule variable.
Il faut que tu parcours le fichier ligne par ligne et que tu utilises les expressions régulières pour capturer ce dont tu as besoin.
Montre nous un exemple d'au moins deux lignes différentes

par ma_pomme » 16 mars 2006, 01:03

:? c'est la deuxieme :?

Mais c'est quoi une moulinette :? :?

Car chaque ligne contiens plusieur données et quand une données est cherché il faut que je recupere la ligne complete :? :?

par mario » 15 mars 2006, 23:57

pres de 70 000 lignes :?
ah quand même ! :shock:
c'est pour une tâche programmée (exécution en ligne de commande) ou pour une consultation à la demande (affichage dans un navigateur) ?
Si c'est la deuxième réponse, créé une moulinette pour inserer tout ça dans une table (MySQL par exemple)

par ma_pomme » 15 mars 2006, 23:18

pres de 70 000 lignes :?

par mario » 15 mars 2006, 22:03

oui le fichier est volumineux et la ligne commencant par # est "#donnees" donc s'il y avait moyen de ne pas voir le mot donnees aussi ça sera bien :oops:
<?php
$cont = file_get_contents('texte.txt'); 
preg_match('`#donnees\r{1}(.*)$`s', $cont, $matches); 

echo nl2br(ltrim($matches[1])); 
?>
J'utilise ltrim car bizarrement, j'ai un retour chariot en début de capture.
J'ai pourtant bien laissé un retour à la ligne unique dans le masque.
Si quelqun a la solution, je prend note :wink:
Pour ton problème ma_pomme, je ne sais pas si cette méthode est la meilleure. Combien de ligne ???

par ma_pomme » 15 mars 2006, 21:21

oui le fichier est volumineux et la ligne commencant par # est "#donnees" donc s'il y avait moyen de ne pas voir le mot donnees aussi ça sera bien :oops:

par mario » 15 mars 2006, 16:00

Le fichier est il volumineux ?
Sur la ligne débutant par #, qu'est ce qui suit ?

Voici un essai avec les expressions régulières
<?php
/* texte.txt

blabla inutile 
blabla inutile
blabla inutile
# A PARTIR DE LA
blabla utile
blabla utile
blabla utile

*/

$cont = file_get_contents('texte.txt');
preg_match('`#(.*)`s', $cont, $matches);

echo nl2br($matches[1]);
/* ça affiche 

A PARTIR DE LA
blabla utile
blabla utile
blabla utile

*/
?>

affich un contenu de fichier a partir d'une ligne precise

par ma_pomme » 15 mars 2006, 14:32

Bonjour,
je voudrais affiché le contenu d'un fichier mais a partir d'une ligne precise (qui commencerais par un signe particulier comme # par exemple)

j'ai fais ça
<?php
$lines = file ('fichier.txt');

foreach ($lines as $line) {
   echo '' . htmlspecialchars($line) . '<br />'."\n";
}
?> 
Mais ça affiche tout le contenu alors que je veux que ça affiche qu'a partir d'une ligne x