Vous pouvez extraire les informations avec le code ci-dessous:
// sample string you provided
$string = "10/06/2010 09:10:40 Work not yet started";
// regular expression to use
$regex = "/^(\d+)\/(\d+)\/(\d+) (\d+)\:(\d+)\:(\d+) (.+?)$/";
Maintenant, tous les champs que vous voulez sont dans le tableau $ matches. Pour extraire des informations dans les matchs de tableau $, vous pouvez utiliser preg_match()
// method 1: just extract
preg_match($regex, $string, $matches);
// method 2: to check if the string matches the format you provided first
// then do something with the extracted text
if (preg_match($regex, $string, $matches) > 0) {
// do something
}
Pour utiliser plus les informations que vous avez:
// to get a Unix timestamp out of the matches
// you may use mktime()
// method 1: supposed your date format above is dd/mm/yyyy
$timestamp = mktime($matches[4], $matches[5], $matches[6],
$matches[2], $matches[1], $matches[3]);
// method 2: or if your date format above is mm/dd/yyyy
$timestamp = mktime($matches[4], $matches[5], $matches[6],
$matches[1], $matches[2], $matches[3]);
Ensuite, vous voudrez peut-être voir si le temps est correctement parsé:
print date('r', $timestamp)
enfin, obtenir le commentaire comme celui-ci:
$comment = $matches[7];
Soyez conscient du problème de fuseau horaire. Si vous analysez ces données sur le même serveur que celui qu'elles ont généré, cela fonctionnera probablement très bien. Vous devrez peut-être ajouter/soustraire l'heure de l'horodateur ci-dessus.
Pourquoi regex? On dirait que vous avez des longueurs de champs fixes plus un format de date assez standard. –