2012-07-04 42 views
1

可能重复:
What is the canonical way to determine commandline vs. http execution of a PHP script?如何确定是否PHP被运行命令行

我有时从命令行运行PHP脚本。用cron或其他一次性脚本。

我想知道它是否可能在php脚本中以确定它是否通过命令行运行?

<?php 

$isRunFromCommandLine = // set to (true:false) -- not sure how to do this 

if($isRunFromCommandLine){ 
    echo 'You are running from command line'; 
} 
else{ 
    echo 'You are not running php via command line' 
} 

?> 
+0

你是正确的,它是重复的。我最初的搜索没有找到它。我不认为它的标题非常好?感谢您的链接+1。 –

回答

1

我想知道,如果它的PHP脚本中可以判断其是否正在通过命令行运行?

当然。检查php_sapi_name()的输出,它会告诉你你是否在CLI模式下运行。

$cli = php_sapi_name() === 'cli'; 
var_dump($cli); 
+0

我建议这不是最好的方法,请参阅php_sapi_name()上的文档,您会发现它可能差异很大。 Magento'Mage_Shell_Abstract'类使用变量:'$ _SERVER ['REQUEST_METHOD']' - 如果存在,脚本在浏览器中运行,否则它是CLI。 –

1

如果脚本通过浏览运行变量$_SERVER['HTTP_USER_AGENT']将设置,如果它是奥钢联的终端也不会设置

if(isset($_SERVER['HTTP_USER_AGENT'])){ 
    echo "Via browse"; 
} 
else{ 
    echo "Via terminal"; 
}