2012-07-04 81 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"; 
}