如何使PHP文件只能通过CLI模式运行?

omg*_*omg 11 php command-line-interface

它可用于浏览器,

但我不希望它在用户浏览时执行,

说,浏览时应该退出,

有没有办法检测它是否是当前的Cmmand Line Mode?

Flo*_*ida 10

这是我正在使用的东西,很长一段时间以来......(自 php 4 iirc)

(PHP_SAPI !== 'cli' || isset($_SERVER['HTTP_USER_AGENT'])) && die('cli only');
Run Code Online (Sandbox Code Playgroud)

用作 php 脚本的第一行。


Bor*_*éry 2

这是一个技巧:

您可以检查 $argc/$argv 参数,这些参数在 CLI 模式下始终可用。

#!/usr/bin/php
<?php 

ini_set('register_argc_argv', 0);  

if (!isset($argc) || is_null($argc))
{ 
    echo 'Not CLI mode';
} else {
    echo 'CLI mode';
}
Run Code Online (Sandbox Code Playgroud)

寄存器_argc_argv

$argc

  • 当 php_sapi_name() 正是为此目的而设计时,为什么要摆弄 INI 设置呢? (3认同)