Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menentukan dengan pasti sama ada Skrip PHP Berjalan dalam Mod Baris Perintah atau HTTP?

Bagaimana untuk Menentukan dengan pasti sama ada Skrip PHP Berjalan dalam Mod Baris Perintah atau HTTP?

Susan Sarandon
Susan Sarandonasal
2024-11-19 20:00:04833semak imbas

How to Reliably Determine if a PHP Script Is Running in Command-Line or HTTP Mode?

Menentukan Command-Line vs. HTTP Execution dalam PHP

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn