2010-09-02 5 views
0

j'ai écrit un simple fichier journal pour mon site Web qui est dans le format suivant:sscanf pour lire le format de journal simple personnalisé?

TIME: "..." IP: "..." HOST: "..." UA: "..." 

et voulait analyser à travers elle avec sscanf dans le cadre d'un exercice. Mon code était à peu près comme celui-ci, qui a été exécuté sur chaque ligne du journal:

list($time, $ip, $host, $ua) = sscanf("TIME: %s IP: %s HOST: %s UA: %s", $line); 

Bien sûr, cela est PHP, mais il est hors de propos, maintenant je pensais cela fonctionnerait, mais il ne fonctionne tout simplement pas analyser quoi que ce soit . Je sais maintenant que ça gâche car l'agent utilisateur ou le temps contient des espaces, donc ça ne marche pas. Je ne sais pas grand chose sur le format sscanf, mais je souhaite l'utiliser pour plus de simplicité, est-il possible de lire les guillemets en une seule entité (au lieu d'utiliser simplement% s), pour qu'il fonctionne correctement?

J'ai reçu de nombreux journaux dans un format similaire, ce qui serait très utile si je pouvais obtenir cet exemple pour fonctionner. Je vous remercie!

Répondre

0

Je suppose que je vais juste utiliser une expression régulière, comme "(?:[^\\"]+|\\.)*" pour le faire.

Questions connexes