Extraire une date d'un texte

Extraire une date d'un texte - PHP - Programmation

Marsh Posté le 09-08-2004 à 02:22:50    

salut à tous !
 
voilà comme un couillon j'ai stocké dans ma bdd un champs contenant du html semblable à celuis ci :
 

Code :
  1. <a href="index.php?a=sujet&cat=1&id=7495&sid=1"><center>2004-06-07<br>21:46:23 par scull


NB les balises ne sont volontairement pas fermer (</a></center> )
 
J'essaye d'extraire seulement la date de ces texte
 
Voici le bordel que j(utilise pour l'extraire:
 $dern_postcatp2=preg_replace("/<a (.*?)(\<center>(.*?)\ par)(.*?)/i", "\\2", $dern_postcatp);
et donc évidement sa marche pas...
Vous pouvez me filer un coups de pouce ? je bloque vraiment...
merci

Reply

Marsh Posté le 09-08-2004 à 02:22:50   

Reply

Marsh Posté le 09-08-2004 à 02:57:07    

comme toujours, je sors un truc en perl, ca devrait pas être bien bien loin du php
 

Code :
  1. if ($foo =~ m/^.*(\d{4}-\d{2}-\d{2}).*(\d{2}:\d{2}:\d{2}).*$/) {
  2.   $date = $1;
  3.   $time = $2;
  4. }

Reply

Marsh Posté le 09-08-2004 à 03:06:55    

hum j'ai du mal à m'y faire...
vraiment bizarre ton code, c'est surement parceque c'est pas du php

Reply

Marsh Posté le 09-08-2004 à 03:08:55    

scull a écrit :

hum j'ai du mal à m'y faire...
vraiment bizarre ton code, c'est surement parceque c'est pas du php


 
comme j'ai dit, c'est du perl, mais au départ, le php c'était du perl, alors à toi de trouver l'équivalent
 
en gros, je fais un match par regexp, et je récupère les champs entre parenthèses dans les variables par défaut, soit $1 pour la 1er parenthèse (dont le pattern est celui d'une date) et $2 pour la 2e (dont le pattern est celui du temps)

Reply

Marsh Posté le 09-08-2004 à 07:35:53    

une URL pour t'y mettre : ftp://ftp2.developpez.be/developps/php/regex.pdf


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 09-08-2004 à 13:28:53    

arf toujours pas moyen, mème en essayany de reprendre uniquement les chiffres et ensuite de les "re-collez" pour refaire une date....


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
Reply

Marsh Posté le 09-08-2004 à 20:38:38    

personne pour me filer un coups de main ou un indice ?


---------------
Créer son forum gratuit |  Mon beau blog phpBB caÿ le mal :o
Reply

Marsh Posté le 09-08-2004 à 23:56:22    

http://www.expreg.com/ explique pas mal de choses aussi


---------------
fermez vos topics résolus avec le tag [Résolu] en fin de titre. Merci !
Reply

Marsh Posté le 10-08-2004 à 10:05:46    

Hmmm, plutôt qu'un preg_replace (où tu dois rechercher tout ce qui n'est pas ta date pour le remplacer), il serait plus simple de te faire une tite fonction avec un ereg
 
du genre

Code :
  1. Function extract_date($txt) {
  2.    $pattern = (pattern "date" )(pattern "ce qu'il y a entre date et time" ) (pattern time)";
  3.    // Découpe la chaîne
  4.    if(ereg($pattern,$txt,$regs))
  5.       // et on ressort la date et le time
  6.       return "$regs[1] $regs[3]";
  7. }
  8. //et on applique le tout à ta chaîne
  9. echo extract_date($text);


 
J'ai essayé avec ton extrait, pas de problème...


Message édité par deliriumtremens le 10-08-2004 à 10:08:22
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed