positionnement dans un fichier texte

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 : positionnement dans un fichier texte

par Invité » 18 mai 2007, 09:00

et que souhaites tu récupérer la dedans?
Un simple file() devrait suffire
<?php
function strip_stars($var){
    return !(false===strpos($var,'**'));
}

$lines=file('fichier.txt');
$lines=array_filter($lines,'strip_stars');
?>
Voilà après ton tableau ne contiendra que les lignes interessantes...
Avec un foreach et une petite regex, c'est facile

par sacco » 17 mai 2007, 21:20

ex:

*****************************************************************
debut generation xxxxxx- le 02/02/2007 4:30:0
fin generation xxxxxxxx - le 02/02/2007 5:58:57
*****************************************************************
debut generation xxxxxxxxx - le 05/02/2007 4:0:0
fin generation xxxxxxxxxxxx - le 05/02/2007 5:12:56
*****************************************************************
debut generation xxxxxxxxxxxx - le 06/02/2007 3:30:0
fin generation xxxxxxxxxx - le 06/02/2007 4:58:59
*****************************************************************
debut generation xxxxxxxxxxx - le 07/02/2007 3:30:0
fin generation xxxxxxxxxxxxx - le 07/02/2007 5:3:28
*****************************************************************

par jojolapine » 17 mai 2007, 11:23

en fait lorsque je disais montre nous un véritable extrait du fichier, je voulais parler du fichier .txt ;-)

par sacco » 16 mai 2007, 20:11

Code : Tout sélectionner

include ('Param.inc'); $filename = 'text.txt'; $debfortunaq = "Début génération des cubes quotidiens"; $fnfortunaq = "Fin génération des cubes quotidiens"; $dhcube = opendir($Dircube); while (false !== ($filename = readdir($dhcube))) { if (file_exists($Cubefortuna)==true) { $Log = file($Cubefortuna); //ouverture BD $sqldb = new PDO("mysql:host=localhost;dbname=production","root","") or die ("impossible d'ouvrir bdd !"); $query = "insert into cubefortuna (JDatedeb,JHeuredeb,JDatefn,JHeurefn) values(:JDatedeb,:JHeuredeb,:JDatefn,:JHeurefn)"; $stmt = $sqldb->prepare($query); foreach ($Log as $ligne) { if(ereg($debfortunaq,$ligne)) { $Pos1 = strpos($ligne,0); $Pos2 = strpos($ligne,"l"); $Entetedeb = substr($ligne,$Pos1,$Pos2-2); $JHeuredeb = substr($ligne,$Pos2+12,8); $JDatedeb = substr($ligne,$Pos2+2,15); } if(ereg($fnfortunaq,$ligne)) { $Pos3 = strpos($ligne,0); $Pos4 = strpos($ligne,"l"); $Entetefn = substr($ligne,$Pos3,$Pos4-2); $JHeurefn = substr($ligne,$Pos4+12,8); $JDatefn = substr($ligne,$Pos4+2,15); } echo $Entetedeb." ".$JDatedeb." ".$JHeuredeb." ".$Entetefn." ".$JDatefn." ".$JHeurefn."<br>";

par jojolapine » 16 mai 2007, 18:17

où sont initialisé ces variables $**fortuna***... et autre chose montre nous un véritable extrait du fichier dans la balise

par sacco » 16 mai 2007, 18:14

le code

foreach ($Log as $ligne)
    					{
    						
    					        						   						
    						if(ereg($debfortunaq,$ligne))	
    					      { 
    					      $Pos1 = strpos($ligne,0);
    						  $Pos2 = strpos($ligne,"l");
    						  $Entetedeb = substr($ligne,$Pos1,$Pos2-2);
    						  $JHeuredeb = substr($ligne,$Pos2+12,8);
    						  $JDatedeb = substr($ligne,$Pos2+2,15);
    					      }
    					      if(ereg($fnfortunaq,$ligne))
    					       {
    					          $Pos3 = strpos($ligne,0);
    						      $Pos4 = strpos($ligne,"l");
    					          $Entetefn = substr($ligne,$Pos3,$Pos4-2);
    					          $JHeurefn = substr($ligne,$Pos4+12,8);
    						      $JDatefn = substr($ligne,$Pos4+2,15);
    					       }
    					       echo $Entetedeb." ".$JDatedeb." ".$JHeuredeb." ".$Entetefn." ".$JDatefn." ".$JHeurefn."<br>";		
    					      
    					      
je voudrai que la partie $fnfortunaq soit plus simple

par jojolapine » 16 mai 2007, 18:01

montre nous déja ton premier script qui prend que la première ligne...

positionnement dans un fichier texte

par sacco » 16 mai 2007, 17:38

Bonjour,

mon but est de récuperer pour mettre dans une base de donnée des info tiré d'un fichier txt qui est incrémenté tous les jours

ex:
*****************************************************************
debut generation xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
fin generation xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*****************************************************************
debut generation xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
fin generation xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
*****************************************************************

je récupère bien la première ligne mais je voudrais une astuce pour récuperer la deuxième ligne

genre un strpos + 1 ligne (en gros un retour à la ligne de mon positinnement).

merci d'avance pour info