15

它可用于浏览器,

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

说,浏览时应该退出,

有没有办法检测它当前是否是命令行模式?

4

5 回答 5

10

这是我正在使用的,很长一段时间以来......(从 php 4 iirc 开始)

(PHP_SAPI !== 'cli' || isset($_SERVER['HTTP_USER_AGENT'])) && die('cli only');

用作 php 脚本的第一行。

于 2014-03-18T20:30:01.277 回答
2

另一个技巧,$_SERVER只有在 CLI 模式下设置的变量。

于 2009-06-03T00:05:14.800 回答
1

这是一个技巧:

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

#!/usr/bin/php
<?php 

ini_set('register_argc_argv', 0);  

if (!isset($argc) || is_null($argc))
{ 
    echo 'Not CLI mode';
} else {
    echo 'CLI mode';
}

register_argc_argv

$argc

于 2009-06-02T23:51:34.750 回答
1
if (!defined('STDIN')) {
    // accessed through the web browser
    die();
}

我在创建 PHP CLI 脚本时使用它。效果很好。

于 2020-09-14T11:47:44.547 回答