Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Menentukan sama ada Skrip PHP Berjalan pada Baris Perintah atau melalui HTTP?

Bagaimana untuk Menentukan sama ada Skrip PHP Berjalan pada Baris Perintah atau melalui HTTP?

Barbara Streisand
Barbara Streisandasal
2024-11-15 18:33:03808semak imbas

How to Determine if a PHP Script is Running on the Command Line or via HTTP?

Menentukan Mod Pelaksanaan Skrip dalam PHP

Menentukan sama ada skrip PHP dilaksanakan melalui baris arahan atau HTTP adalah penting untuk pelbagai tujuan, seperti pemformatan output. Dari segi sejarah, menyemak pembolehubah SERVER['argc'] dianggap sebagai pendekatan kanonik. Walau bagaimanapun, kaedah ini terbukti tidak boleh dipercayai apabila menggunakan API pelayan Apache 2.0 Handler kerana ia mengisi SERVER['argc'] walaupun dalam pelaksanaan baris arahan.

Kaedah yang disyorkan dan lebih mantap ialah menggunakan fungsi php_sapi_name() . Ia mengembalikan rentetan yang menunjukkan jenis antara muka antara pelayan web dan PHP. Contohnya termasuk:

  • "cli" untuk pelaksanaan baris arahan
  • "apache2handler" untuk pelaksanaan API pelayan Apache 2.0 Handler

Kod Contoh :

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

Nota Dokumentasi:

Dokumentasi fungsi php_sapi_name() menyediakan maklumat lanjut:

  • Nilai Pulangan Kemungkinan: Walaupun tidak menyeluruh, fungsi ini mungkin mengembalikan nilai seperti "apache," "cgi," "nsapi" dan "tux," yang mewakili API pelayan yang berbeza.
  • PHP >= 4.2.0: PHP memperkenalkan pemalar yang dipratentukan, PHP_SAPI, yang memegang nilai yang sama seperti php_sapi_name().

Atas ialah kandungan terperinci Bagaimana untuk Menentukan sama ada Skrip PHP Berjalan pada 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