2009-06-02 4 views
9

यह ब्राउज़र के लिए उपलब्ध है,केवल सीएलआई मोड के माध्यम से एक PHP फ़ाइल रन-सक्षम कैसे करें?

लेकिन मैं जब उपयोगकर्ता के अनुसार ब्राउज़ यह निष्पादित करने के लिए नहीं करना चाहते,

जब ब्राउज़ किया बाहर निकलने चाहिए, कहते हैं,

वहाँ चाहे वह वर्तमान में Cmmand है का पता लगाने के लिए एक रास्ता है रेखा मोड?

+0

मुझे जवाब मिल गया है, यह जांच सकता है: जारी ($ argv) – omg

+0

आप शायद php_sapi_name का उपयोग बंद कर रहे हैं। यह वही करने का स्वीकार्य तरीका है जो आप चाहते हैं। –

+0

@ शोर - आपको वास्तव में $ argv का उपयोग नहीं करना चाहिए। यह एक आईएनआई सेटिंग द्वारा नियंत्रित है, सीजीआई बनाम सीएलआई नहीं: http://us3.php.net/manual/en/ini.core.php#ini.register-argc-argv –

उत्तर

1

यहाँ एक चाल है:

आप $ 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'; 
} 

register_argc_argv

$argc

+2

आईएनआई सेटिंग्स के साथ क्यों बेवकूफ है जब php_sapi_name() इस उद्देश्य के लिए डिज़ाइन किया गया है? –

+0

एक और समस्या है, इस तरह का उपयोग करें, ज़ेंड में डिबगिंग करते समय, इसे "सीएलआई मोड नहीं" के रूप में भी माना जाता है जब भी यह वास्तव में होता है – omg

1

एक और चाल, $_SERVER चर है कि केवल CLI मोड में स्थापित कर रहे हैं है।

2

यहाँ मैं क्या उपयोग कर रहा हूँ, एक लंबे समय के लिए अब ... (के बाद से php 4 iirc)

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

PHP स्क्रिप्ट की पहली पंक्ति के रूप में इस्तेमाल किया जा रहा है।

संबंधित मुद्दे