2010-12-13 4 views
0

S'il vous plaît recommander php xml parser bibliothèque, je ne peux pas utiliser php xml parser lib par défaut parce que cela prend trop de temps pour l'analyse de mon script et apaches dies. (aucune possibilité de configurer l'option Timeout, donc je veux flush() de temps en temps pour le garder en vie)S'il vous plaît recommander php xml parser (une bibliothèque tierce partie)

+0

Quelle est la taille de votre fichier XML? –

+0

Si la bibliothèque d'analyseurs XML par défaut expire, tout script tiers risque également d'expirer. Pourquoi ne pouvez-vous pas flush() dans l'implémentation PHP par défaut? – ceejayoz

+0

comment? toute la magie est derrière xml_parse_into_struct(), filsize est 24 MB – oglyhov

Répondre

3

Vous semblez avoir besoin de the expat parser. Heureusement, PHP l'a déjà intégré.

Si vous ne le connaissez pas, l'analyseur expat est un analyseur basé sur les événements. Il ne crée pas d'arbre à partir de votre document (comme le font les bibliothèques DOM et SimpleXML), il analyse juste du début à la fin et déclenche des événements lorsqu'il trouve certains composants XML, comme des balises et des données.

Pour voir un exemple de mise en œuvre, vous pouvez regarder this tutorial sur w3schools.

+0

malencontreusement intégré ne correspond pas aux exigences minières – oglyhov

+1

@oglyhov Pardon moi? Avez-vous déjà essayé cette extension et cela n'a pas fonctionné? Qu'est-ce que * built-in * a à voir avec quoi que ce soit? Il existe deux types de parseurs: l'arborescence et l'événement. Si vous utilisez ** n'importe quel analyseur d'arborescence, le résultat sera probablement le même: votre script se bloque. Vous devez utiliser un analyseur d'événements. Ce que je t'ai donné est exactement ça. –

+2

@oglyhov Oh, et en utilisant cet analyseur, vous devrez utiliser votre cerveau un peu ... Est-ce le problème? Ce modèle d'analyse permet à la fois de purger et d'expirer. Mais vous devez l'implémenter vous-même. –

Questions connexes