Script PHP de 16Mo

WRInaute discret
Est-ce qu'il y a un risque d'exécuter un script PHP de 16Mo ?

Sachant que le plus gros étant une array contenant des emails avec une template HTML d'environ 30Ko.

Pour moi, le risque et équivalent à un appel en base de donnée, mais quelqu'un d'aussi informé que moi me dit le contraire.

Une idée sur cette catastrophe ?
 
WRInaute passionné
Un risque non, mais il peut se poser deux soucis:

Le premier est le timeout de ton script.

En effet, dans le php.ini, il y a une ligne qui définit le temps maximal avant qu'un code ne s'arete d'etre executé.

Si PHP met trop de temps a executer le script, alors l'execution sera stopé.

Deuxieme soucis:

Si ton script est executé trop souvent sur ton serveur, ce dernier risque de ralentir le serveur (ton processeur risque de te faire la gueule, et la mémoire vive risque de gerber)
 
WRInaute discret
Pour l'utilisation CPU/RAM ça j'avais compris, oui, c'est risqué à priori.
Je couperais bien la moulinette en 4 et les lancer au fur et à mesure, mais bon, je n'ai pas envie d'y passer la nuit, et j'ai pas l'accès au cronjob..

Merci en tout cas !
 
WRInaute impliqué
Romuald a dit:
Est-ce qu'il y a un risque d'exécuter un script PHP de 16Mo

Un risque ? Tout dépend de ce que tu appelles risque, si tu es sur un hébergement mutualisé, non seulement ton script ne fonctionnera jamais ( je ne connais aucun hébergeur qui accepte qu'un script php prenne plus de 8Mo en mémoire ) mais tu risque de vite te faire éjecter de la plate forme d'hébergement.

Pourquoi ne pas mettre le contenu dans un fichier texte que tu lis ligne par ligne ?
 
WRInaute passionné
Ben normalement un fichier php ne doit comporter que du code, si tu as des donnée, met les dans une bdd, ou dans un fichier comme le dis shrom.
 
WRInaute impliqué
Si c'est pour envoyer d'un seul coup des milliers de mails, à mon avis ca va partir en timeout (ou surconsommation mémoire comme indiqué).
Le mieux serait peut-être de revoir la façon dont tu envoie tes mailings.

Par exemple mettre tout les destinataires dans la base de données avec une colonne "a_envoyer" à 0 ou 1 si faut envoyer un mail.
Tu sélectionne les 50 premiers qui ont un 1 et tu leur envoie (et tu mets un 0 dans la colonne).
Puis tu relance le script, et ainsi de suite jusqu'à ce que tout soit traité.

Et si t'en a vraiment de trop à envoyer, ca serait mieux d'utiliser un vrai outil de mailing (je me sert de dada mail connu aussi sous le nom de mojo qui est un script cgi qui utilise un peu le principe évoqué, vu qu'il permet d'envoyer les mails par pools de x mails toutes les x minutes). On voit la page en pseudo exécution le temps de tout envoyer et ca marche bien (j'ai pas eu de soucis sur 500 mailings)
 
WRInaute accro
forummp3 a dit:
Ben normalement un fichier php ne doit comporter que du code, si tu as des donnée, met les dans une bdd, ou dans un fichier comme le dis shrom.

Si tu ne veux pas passer par une DB, le format CSV est super bien supporté par PHP.
 

➡️ Offre MyRankingMetrics ⬅️

pré-audit SEO gratuit avec RM Tech (+ avis d'expert)
coaching offert aux clients (avec Olivier Duffez ou Fabien Faceries)

Voir les détails ici

coaching SEO
Discussions similaires
Haut