Découper un chaine de caractères avec des dates

floxi Messages postés 145 Date d'inscription   Statut Membre Dernière intervention   -  
floxi Messages postés 145 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

je souhaite découper une chaine de caractère de ce type:

11/03/2013 17:09: installation office 11/03/2013 17:09: installation adobe et Java...


Afin d'obtenir:

INSERT INTO ttest (date,text) VALUES '11/03/2013 17:09', 'installation office.';
INSERT INTO ttest (date,text) VALUES '11/03/2013 17:09', 'installation adobe et Java...';


Quelle fonction php utiliser pour réaliser ce découpage.

Merci pour vos réponses.


A voir également:

2 réponses

bgallet
 
Salut,
La fonction suivante retourne un tableau qui contient toutes tes données:

Pour accéder à la date du 3° element par exemple $tab[2]['date'] et le message associé $tab[2]['message'].
(En admettant que tu récupères le résultat de la fonction dans une variable $tab bien sur ;)

$chaine = '11/03/2013 17:09: installation office 11/03/2013 17:10: installation adobe et Java 11/03/2013 17:11: installation office 11/03/2013 17:12: installation adobe et Java';

var_dump(separer_chaine($chaine));

function separer_chaine($chaine){
    $date_pattern = '[0-9]{2}[/][0-9]{2}[/][0-9]{4}\s[0-9]{2}[:][0-9]{2}';

    $datas = array();
    $pattern = '#(' . $date_pattern . ')[:](.*?)' . $date_pattern . '#';
    while($chaine != ''){
        if(preg_match($pattern, $chaine, $res)){
            $datas[] = array(
                'date' => $res[1],
                'message' => trim($res[2])
            );
            $chaine = str_replace($res[1] .':'. $res[2], '', $chaine);
        }
        else{
            $pattern = '#(' . $date_pattern . ')[:](.*)$#';
        }
    }

    return($datas);
}
0
floxi Messages postés 145 Date d'inscription   Statut Membre Dernière intervention   94
 
Bonjour,

merci beaucoup pour cette fonction (ça ne s'invente pas), cependant je reste bloqué dans ma configuration car je test plusieurs chaines de caractère et il arrive que la chaine ne contienne pas la pattern...


ce qui provoque un bug avec cette fonction avez vous une idée pour adapté le script avec cette contrainte ?


Merci

Flox
0