Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Tentukan dengan Amanah jika Skrip PHP Saya Berjalan dari Baris Perintah atau melalui HTTP?

Bagaimanakah Saya Boleh Tentukan dengan Amanah jika Skrip PHP Saya Berjalan dari Baris Perintah atau melalui HTTP?

Patricia Arquette
Patricia Arquetteasal
2024-11-16 12:13:03418semak imbas

How Can I Reliably Determine if My PHP Script is Running from the Command Line or via HTTP?

Menentukan Command-Line vs. HTTP Execution dalam PHP

Tugas biasa dalam pembangunan skrip PHP ialah menentukan jenis persekitaran pelaksanaan, sama ada skrip berjalan melalui baris arahan atau melalui HTTP. Pengetahuan ini penting untuk membuat keputusan pemformatan output dan menyesuaikan tingkah laku dengan sewajarnya.

Kaedah tradisional untuk menyemak kewujudan SERVER['argc'] tidak boleh dipercayai, kerana ia boleh diisi walaupun semasa menggunakan 'Apache API pelayan 2.0 Pengendali. Cara kanonik untuk menyelesaikan pertanyaan ini adalah dengan menggunakan fungsi php_sapi_name().

if (php_sapi_name() == "cli") {
    // In cli-mode
} else {
    // Not in cli-mode
}

Fungsi php_sapi_name() menyediakan pelbagai kemungkinan nilai pulangan, termasuk aolserver, apache, apache2filter, apache2handler, caudium, cgi, cli dan webjames, antara lain. Rujuk dokumentasi PHP untuk senarai lengkap.

Selain itu, dalam PHP >= 4.2.0, PHP_SAPI pemalar pratakrif memegang nilai yang sama seperti php_sapi_name(). Dengan menggunakan pemalar ini, pembangun boleh meningkatkan kebolehbacaan dan kebolehselenggaraan kod.

Dengan mematuhi pendekatan kanonik ini, pembangun PHP boleh menentukan persekitaran pelaksanaan skrip mereka dengan pasti, membolehkan pemformatan output disasarkan dan pelarasan tingkah laku yang disesuaikan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Tentukan dengan Amanah jika Skrip PHP Saya Berjalan dari Baris Perintah atau melalui 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