Votre question

[PHP] Modification d'un texte

Tags :
  • Php
  • Programmation
Dernière réponse : dans Programmation
23 Octobre 2010 21:21:21

Bonjour,

Je souhaire récupérer des données d'une page web externe, jusque la pas de problème mais le problème c'est qu'elle est très peu lisible et seul 15% du contenu m'interesse.

J'ai donc un fichier texte sous la forme la :

Citation :

INUTILE
...
JJ.MM.AAAA heure texte
texte_suite
JJ.MM.AAAA heure texte
texte_suite
JJ.MM.AAAA heure texte
texte_suite
JJ.MM.AAAA heure texte
texte_suite
...
INUTILE


Je voudrais donc récupérer uniquement les lignes qui commence par une date sous la forme JJ.MM.AAAA et la ligne suivante (car prolongement du texte). Il y a sans doute d'autres façon de procéder (par exemple: "je supprime tout se qui est avant la 1ère date et tout se qui est après la dernière date...).

Pour le moment j'ai le code suivant (je débute, on m'a déja donné un gros coup de main) :

Citation :
<?php
$page1 = file_get_contents("https:...");
$page1=strip_tags($page1);
$memoire = fopen('php://memory', 'r+'); // fichier temporaire en mémoire
fwrite($memoire, $page1);
rewind($memoire); // retour au début de $memoire
$fichier=fopen('01.txt', 'w+');
$prev_ok = false; // valeur de départ
while(!feof($memoire)) // Boucle jusqu'à arriver à la fin de $memoire
{
$ligne = trim(fgets($memoire)); // trim() vire les caractères invisibles en début et en fin
$ok = preg_match('#^(?:\d{2}\.){2}\d{4}#', $ligne);
if($ok or $prev_ok)
fputs($fichier,"$ligne\n");
$prev_ok = $ok;
}
fclose($memoire);
fclose($fichier);
?>


Mais il récupére uniquement la partie :

JJ.MM.AAAA heure texte
texte_suite

La partie du texte sur la ligne et sur la ligne+1 sont donc filtrés...

Que faire ?


Merci

Autres pages sur : php modification texte

a c 145 L Programmation
24 Octobre 2010 10:25:35

Il y a à mon avis des caractères que tu ne vois pas dans ton fichier "$memoire", et de plus je ne vois pas l'intérêt de passer par lui.
Pour ma part, je commencerais par un petit debug simple:
  1. <?php
  2. $page = file("https://....");
  3. array_walk($page, 'strip_tags');
  4. echo '<pre>', var_dump($page), '</pre>';
  5. ?>

Et je travaillerais sur le tableau plutôt que sur une succession de lignes venant d'un fichier temporaire.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS