Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menutup ob_start dalam php
php ob_start digunakan untuk membuka penimbal kawalan output Untuk menutup ob_start, anda boleh menggunakan fungsi ob_end_clean() untuk membuang kandungan penimbal secara senyap.
Persekitaran pengendalian artikel ini: sistem Windows 7, PHP versi 7.1, komputer DELL G3
Cara menutup ob_start in php?
ob_start — Buka penimbal kawalan output
Penerangan
ob_start(callable $output_callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool
Fungsi ini akan membuka penimbal output. Apabila penimbalan output diaktifkan, skrip tidak akan mengeluarkan kandungan (kecuali pengepala http), sebaliknya kandungan yang akan dikeluarkan disimpan dalam penimbal dalaman.
Kandungan penimbal dalaman boleh disalin ke pembolehubah rentetan menggunakan fungsi ob_get_contents()
. Untuk mengeluarkan kandungan yang disimpan dalam penimbal dalaman, anda boleh menggunakan fungsi ob_end_flush()
. Selain itu, menggunakan fungsi ob_end_clean()
akan membuang kandungan penimbal secara senyap.
Amaran
Sesetengah pelayan web (cth. Apache) akan menukar direktori kerja skrip apabila terdapat fungsi panggil balik dipanggil. Anda boleh menukarnya kembali dalam fungsi panggil balik, contohnya chdir(dirname($_SERVER['SCRIPT_FILENAME'])) .
Penimbal output boleh disusun, yang bermaksud bahawa semasa satu ob_start() aktif, anda boleh memanggil ob_start() yang lain. Cuma pastikan anda memanggil ob_end_flush() bilangan kali yang betul. Jika berbilang panggilan balik output aktif, output akan sentiasa ditapis melaluinya dalam susunan bersarang.
Parameter
output_callback
Fungsi output_callback parameter pilihan boleh ditentukan. Fungsi ini mengambil rentetan sebagai hujah dan mengembalikan rentetan. Fungsi ini akan dipanggil apabila penimbal keluaran disiram (dipancarkan) atau dibersihkan (ob_flush(), ob_clean() atau fungsi serupa atau apabila kandungan penimbal keluaran disalurkan ke penyemak imbas pada akhir permintaan . Apabila output_callback dipanggil, ia menerima kandungan penimbal output sebagai parameter dan dijangka mengembalikan penimbal keluaran baharu sebagai hasilnya. Jika output_callback ini bukan fungsi boleh panggil, fungsi ini akan mengembalikan palsu.
Berikut ialah tandatangan panggil balik:
handler(string $buffer, int $phase = ?): string
penampan
Keluarkan kandungan penimbal.
fasa
bit mask PHP_OUTPUT_HANDLER_* pemalar.
Jika output_callback mengembalikan palsu , kandungan input asal dihantar terus ke penyemak imbas.
Parameter output_callback ini boleh dielakkan dengan terus memberikan nilai nol.
ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() dan ob_start() tidak boleh dipanggil daripada fungsi panggil balik. Jika ia dipanggil daripada fungsi panggil balik, tingkah laku yang terhasil tidak ditentukan. Jika anda ingin memadamkan kandungan penimbal, kembalikan "" (rentetan kosong) daripada fungsi panggil balik. Ia juga tidak boleh menggunakan fungsi penimbal output seperti print_r($expression, true) atau highlight_file($filename, true) daripada fungsi panggil balik.
注意: ob_gzhandler() function exists to facilitate sending gz-encoded data to web browsers that support compressed web pages. ob_gzhandler() determines what type of content encoding the browser will accept and will return its output accordingly.
chunk_size
Jika parameter pilihan chunk_size ditetapkan, penimbal akan dipadamkan selepas sebarang operasi output yang menyebabkan panjang penimbal sama dengan atau melebihi saiz_chunk. Nilai lalai 0 bermakna fungsi dipanggil hanya pada penghujungnya.
Sebelum PHP 5.4.0, 1 ialah nilai kes khas yang menetapkan chunk_size kepada 4096 bait.
bendera
Parameter bendera mewakili bit topeng yang digunakan untuk mengawal operasi pada penimbal. Lalai adalah untuk membolehkan penampan output dibersihkan, dibuang dan dikeluarkan, yang boleh ditetapkan secara eksplisit melalui php_output_handler_cleanable | , atau kembalikan palsu apabila gagal.
Pembelajaran yang disyorkan: "
Tutorial Video PHP"
Atas ialah kandungan terperinci Bagaimana untuk menutup ob_start dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!