Parse XML : augmenter la mémoire ?
Bonjour,
Je suis actuellement en train de développer une application en PHP dans le cadre d'un stage en entreprise.
J'utilise NetBeans pour programmer et XAMPP-Apache comme serveur.
En ce qui concerne mon PC, voici sa config :
Citation:
Pentium(R) Dual-Core CPU
E5400 @ 2.70GHz 1.18GHz
1.96GB of RAM
Je tourne sous XP
Mon script charge des flux XML via la méthode simplexml_load_file. Ces flux contiennent plusieurs milliers de lignes, ce qui les rends un peu lourd (~35MO). A partir du 7ème flux, j'ai une erreur de ce type qui apparaît:
Citation:
Warning: simplexml_load_file() [function.simplexml-load-file]:
...
parser error : Memory allocation failed : xmlSAX2Characters in D:\xampp\htdocs\PhpProject1\controleur\gerer_rapport_emission.php on line 93
Warning: simplexml_load_file() [function.simplexml-load-file]:
...
parser error : out of memory error in D:\xampp\htdocs\PhpProject1\controleur\gerer_rapport_emission.php on line 93
Les 6 premiers flux sont parfaitement parcourus, puis apparaissent ces erreurs pour les flux suivants.
Je dois préciser qu'une fois le flux chargé dans un objet, et les informations visées récupérées, je détruit l'objet avec unset() avant de faire mon traitement et de passer au flux suivant.
Je pense donc que cela vient du serveur. Mais pour être honnête, je n'y connais rien en serveur!
Donc voici ce que j'ai déjà fait:
Citation:
- changer la valeur de memory_limit dans le php.ini. Elle était à 128M, je l'ai passée à 300M,
- ajouter ligne php_value memory_limit à 300M dans .htaccess (librairie),
- ajouter ligne ini_set('memory_limit', '300M') dans mon script,
- ajouter lignes :
php_value memory_limit à 300M,
extension = pdo.so
extension = pdo_sqlite.so
extension = sqlite.so
extension = pdo_mysql.so dans .htaccess (sqli, il me semble)
- ajouter la copie de php.ini dans apache/bin
Et ça ne fonctionne toujours pas. Alors, ai-je fait quelque chose de travers, manque t'il quelque chose ou, finalement, ne s'agirait-il pas d'autre chose?