Dalam PHP, menentukan sama ada skrip sedang dilaksanakan daripada baris arahan atau melalui HTTP adalah penting untuk output pemformatan dan tujuan lain. Kaedah tradisional untuk memeriksa tatasusunan SERVER['argc'] tidak boleh dipercayai dalam semua kes, kerana ia mungkin diisi walaupun semasa pelaksanaan HTTP.
Penyelesaian kanonik untuk masalah ini ialah menggunakan fungsi php_sapi_name() . Fungsi ini mengembalikan jenis antara muka antara pelayan web dan PHP. Jika nilai yang dikembalikan ialah "cli", skrip sedang dilaksanakan daripada baris arahan, manakala sebarang nilai lain menunjukkan pelaksanaan HTTP.
if (php_sapi_name() == "cli") { // In cli-mode } else { // Not in cli-mode }
Seperti yang dinyatakan dalam dokumentasi PHP, php_sapi_name() boleh mengembalikan pelbagai nilai bergantung pada antara muka pelayan. Beberapa nilai biasa termasuk "apache", "cgi-fcgi", "nsapi" dan "litespeed".
Dalam PHP versi 4.2.0 dan ke atas, terdapat juga PHP_SAPI pemalar pratakrif yang mempunyai nilai yang sama sebagai php_sapi_name(). Pemalar ini boleh digunakan sebagai alternatif kepada fungsi.
Atas ialah kandungan terperinci Bagaimana untuk Menentukan dengan pasti sama ada Skrip PHP Berjalan dalam Mod Baris Perintah atau HTTP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!