Limite de taille du tableau en PHP
je me demande s'il y a une limite de taille pour les tableaux en php 5? J'ai écrit un script php pour modifier le dernier élément de chaque ligne d'un fichier. imprimer le contenu d'un fichier modifié, quand j'exécute le script sur un fichier de petite taille (c.-à-d. chaque ligne comprend 4 valeurs), il fonctionnera. Quand je l'exécute sur un fichier plus grand (comme 60000 lignes, dont chacune comprend 90 valeurs), il ne change pas un peu du fichier original, mais le script n'a pas lancé de message d'exception pendant l'exécution. Quel ce problème est-il?
2 réponses
vous pourriez manquer de mémoire, car la taille de votre tableau n'est (en théorie) limitée que par la quantité de mémoire allouée au script.
Mettre ini_set('memory_limit', '1024M');
au début de votre script pour définir la limite de mémoire de 1 GO. Vous pouvez augmenter cette même supérieur pour de meilleurs résultats.
comme le dit manyxcxi, vous devrez probablement augmenter le memory_limit. Parfois, vous pouvez également réduire l'utilisation de la mémoire en désactivant les grandes variables avec unset($var). Cela n'est nécessaire que lorsque la variable reste dans la portée bien au-delà de son dernier point d'utilisation.
êtes-vous en train de lire le fichier en entier, de le transformer et d'écrire le nouveau fichier? Si c'est le cas, vous pouvez réduire l'utilisation de la mémoire en travaillant dans une boucle où vous lisez une petite partie, la traiter et l'écrire et répéter que jusqu'à ce que vous atteignez la fin du fichier. Mais seulement si l'algorithme de transformation n'a pas besoin du fichier entier pour transformer une petite partie.