Pouvez-vous m'aider s'il vous plaît avec des idées pour être en mesure d'analyser et de combiner environ 12 fichiers xml, chaque fichier a ~ 5 méga, pour finalement avoir un seul fichier global.Parse et combiner de nombreux fichiers xml, mémoire insuffisante
Actuellement, j'utiliser un cron pour exécuter un script (une commande framework symfony)
Pour chaque fichier que je deserialize avec le faisceau JMSSerializerBundle, il permet de créer un objet à partir d'un fichier xml.
Et j'ai un problème de mémoire. Je pense que cela est dû à cette désérialisation.
Mes questions sont,
Connaissez-vous une meilleure façon de le faire stup, si je remplace ce désérialisation avec cet ensemble par une analyse syntaxique avec SimpleXML, pensez-vous qu'il consomme moins de mémoire?
De même, si je sauvegarde les fichiers dans des variables, Redis change-t-il quelque chose? Et, une dernière question, si j'utilise la base de données, par exemple, je sauvegarde les fichiers dans une table, puis je récupère tous les enregistrements dans une table et avec cela je construis le fichier xml global, peut-il être une bonne idée? Ou créez le fichier global en plusieurs étapes (avec 3 fichiers à chaque fois), enregistrez-le à chaque fois dans une table et récupérez les données à chaque fois dans un tableau simple.
Merci beaucoup pour votre aide.
Si vous rencontrez des problèmes de mémoire avec SimpleXML, vous devriez probablement passer à l'utilisation d'un analyseur d'extraction comme [XMLReader] (http://www.php.net/manual/en/class.xmlreader.php) –
Une combinaison de XMLReader et XMLWriter devrait être capable de vous permettre de construire le fichier entier en une fois. Cela dépend de la quantité de traitement que vous avez à faire avec les données entre temps, vous pouvez être en mesure de les canaliser tous les deux en une seule fois. –
Oui, je vais utiliser XMLReader merci les gars. – sakados