Je ne suis pas un expert en la matière mais, si j'ai bien compris les dires de nôtre ami FF (Pour vulgariser tout ça)
Un parseur permets de faire en sorte de traiter un packet une seule fois en définissant toutes les possibilités de celui-ci. Exemple:
Une réponse HTTP:
HTTP/1.0 200 OK
Date : Sat, 15 Jan 2000 14:37:12 GMT Server : Microsoft-IIS/2.0
Content-Type : text/HTML
Content-Length : 1245
Last-Modified : Fri, 14 Jan 2000 08:25:13 GMT
<contenu de la page>
Dans cet exemple, beaucoup d'informations nous intéressent.
La version HTTP utilisée (HTTP/1.0)
Le code réponse (200)
La signification du code (OK)
Date de début de transfert des données (Sat, 15 Jan 2000)
L'heure de début du transfert (14:37:12)
La timezone (GMT)
Le serveur (Microsoft-IIS/2.0)
Le type de contenu (text/HTML)
La longueur du contenu (1245)
La dernière modification effectuée (Fri, 14 Jan 2000 08:25:13 GMT)
Un parser permettra simplement de bien ranger ces données.
Par exemple, Je veux récupérer le code de réponse de chaque packet que je reçoit. Je regarde donc si le code es bien 200 (C'est à dire que la page existe.)
Plutôt que de traiter ce packet a la réception, avec un code tout dégueu, je vais avoir une fonction qui va me créer un objet contenant tout ce donc j'ai besoin.
Une fois ces données traitées, Si je veux vérifier la disponibilité de la page, Je vais faire:
<span class="syntaxdefault">echo $reponse</span><span class="syntaxkeyword">-></span><span class="syntaxdefault">code</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span>
Ce qui me retournera
200
Cela permets aussi de n'avoir qu'une seule fonction qui traite tous les packets, C'est beaucoup moins bordélique dans le cas d'une erreur.
Voila voila^^