2010-11-12 7 views
2

Est-il correct d'avoir ob_start() au début de toutes les pages PHP?Nécessité de préfixer toutes les pages PHP avec ob_start()

Si je ne fais pas cela, je reçois l'erreur "headers already sent".

+3

Si ces erreurs sont soulevées par rapport à votre intention, vous voudrez peut-être vérifier la sortie lâche/prématurée et d'autres choses en premier. – BoltClock

+0

yup, n'oubliez pas de 'open_end_clean' il' ob_end_flush' mais vous devriez chercher d'où vient l'en-tête – ajreal

+0

@ajreal - Je suis sûr que vous vouliez dire 'ob_end_clean', pas' open_end_clean'. :) –

Répondre

1

C'est "ok" mais vous devriez vraiment corriger votre script pour ne pas sortir les choses prématurément et sauvegarder la sortie pour la fin. Mais vous pouvez simplement changer un paramètre dans .htaccess ou php.ini en bas est pour .htaccess:

php_value output_buffering On 
php_value output_handler mb_output_handler 

Ce serait préférable, à mon avis, au lieu d'ajouter ob_start au-dessus de tous vos scripts.

Cependant, vous devriez vraiment résoudre le problème à la base. IE: Enregistrer la sortie pour la fin du script.

1

vous pouvez avoir espace avant en haut de la page

Cela conduira cette erreur « HEADER ENVOYER DÉJÀ »

Aucune idée ob_start()

1

Je dirais qu'il est ok pour faire cela comme une solution de contournement ou lorsque simplement faire rapidement votre script existant fonctionne. À long terme, cependant, vous devriez penser à redéfinir votre application afin que des choses comme ça ne se produisent pas. En général, vous devriez essayer de séparer complètement la logique de l'application et la sortie.

Questions connexes