Rumah > Soal Jawab > teks badan
P粉4398045142023-07-31 09:13:23
Inilah perkara yang boleh anda lakukan untuk menyelesaikan masalah dan menyelesaikan isu ini:
Semak baris yang ditentukan: Mesej amaran menunjukkan bahawa output bermula pada baris 12 /some/file.php, dan anda cuba mengubah suai maklumat pengepala dalam talian 23. Pergi ke baris ini dan pastikan tiada ruang, gema, cetakan, HTML atau output lain sebelum panggilan fungsi header() pada baris 23.
Alih keluar mana-mana ruang utama: Jika mana-mana fail PHP disertakan atau diperlukan sebelum fail semasa (cth. menggunakan sertakan atau memerlukan), pastikan fail ini tidak mempunyai sebarang ruang utama sebelum teg <?php pembukaan. Ruang kosong di luar teg PHP dianggap sebagai output dan boleh menyebabkan amaran ini.
Elakkan teg PHP penutup: Dalam fail PHP yang mengandungi hanya kod PHP (tiada HTML), biasanya disyorkan untuk meninggalkan teg PHP penutup (?>) pada penghujung fail. Ini memastikan tiada ruang atau aksara yang tidak dijangka selepas teg penutup untuk mengelakkan daripada mencetuskan output.
Gunakan penimbalan output: Jika terdapat beberapa output yang tidak dapat dielakkan sebelum panggilan header() (cth. disebabkan kebergantungan perpustakaan atau pernyataan bersyarat), anda boleh menggunakan penimbalan output untuk menangkap output dan menghalangnya daripada dihantar ke penyemak imbas dengan segera. Gunakan ob_start() pada permulaan skrip PHP untuk memulakan penimbalan output, dan gunakan ob_end_flush() atau ob_end_clean() untuk menamatkan penimbalan output sebelum panggilan header().
Contoh menggunakan penimbalan output:
<?php ob_start(); // Start output buffering // Code that generates output (if any) // Now, set the headers header('Location: new_page.php'); exit(); ob_end_flush(); // Send the output to the browser ?>