Comment puis-je vérifier si quelque chose était imprimé dans le navigateur? J'ai essayé headers_sent mais il est pour les en-têtes ... Si rien n'a été imprimé que je veux télécharger un fichier:PHP - Vérifie si quelque chose était imprimé dans le navigateur
public function download() {
$file = null;
$line = null;
if(headers_sent($file, $line)) {
/* generic exception... change that... */
throw new Exception('Headers was sent before in file ' . $file . ', line #' . $line);
}
header('Content-Description: File Transfer');
header('Content-Type: ' . $this->mime);
header('Content-Disposition: attachment; filename=' . $this->name);
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . $this->size);
readfile($this->path);
Merci.
headers_sent est ce qu'il vous faut –
Votre code devrait fonctionner tel quel. 'headers_sent' retournera vrai si vous avez sorti quelque chose (à condition que vous n'ayez pas de tampon de sortie activé), car la première fois que vous le faites, PHP enverra les en-têtes appropriés pour vous. – meagar
headers_sent ne fonctionne pas: Php echo 'hi'; echo headers_sent(); // pas de sortie, donc c'est faux ...?> – thomas