Parce que la durée maximum d'exécution d'un « script », c'est à dire d'une page complète, est, par défaut, limitée à 30 secondes afin de ne pas accaparer les ressources sur une seule connexion PHP. C'est, d'ailleurs, la limite imposée par tous les hébergeurs mutualisés.
Un « programme » PHP qui dure plus de 30 secondes pourrait montrer un défaut d'écriture de celui-ci, voire une boucle infinie.
Il est possible d'augmenter cette valeur, en local, en modifiant le fichier wamp\bin\apache\apache2.2.8\bin\php.ini le contenu de la ligne max_execution_time exprimé en secondes
max_execution_time = 30 ; Maximum execution time of each script, in seconds
Il serait bon de voir pourquoi votre script nécessite plus de 30 secondes et de remédier à ce défaut.
Il est également possible, toujours en local (Interdit chez la quasi totalité des hébergeurs) d'insérer dans un script très long, en particulier dans une itération de traitement, une instruction set_time_limit()
Lorsqu'elle est appelée, set_time_limit() remet le compteur à zéro. En d'autres termes, si la limite par défaut est à 30 secondes, et qu'après 25 secondes d'exécution du script l'appel set_time_limit(20) est fait, alors le script tournera pendant un total de 45 secondes avant de finir.
Avec une valeur 0, aucune limite n'est imposée.
set_time_limit() n'a pas d'effet lorsque PHP fonctionne en mode safe mode. Il n'y a pas d'autre solution que de changer de mode, ou de modifier la durée maximale d'exécution dans le php.ini.
Note: La fonction set_time_limit(), tout comme la directive de configuration de php.ini, max_execution_time n'affectent que le temps d'exécution du script lui-même. Tout temps passé en dehors du script, comme un appel système utilisant system(), des opérations sur les flux, les requêtes sur base de données, etc. n'est pas pris en compte lors du calcul de la durée maximale d'exécution du script.
Ce problème vient probablement de la vétusté de mon matériel, avec 192 MO de RAM et une horloge à 400 MO, je ne dois pas m'attendre à des miracles. Ayant réglé la valeur à 0 tout va bien en local, chez mon hébergeur OVH, ou j'utilise spip, je n'ai pas de soucis. Merci pour la réponse rapide et précise