It's available to browser,
but I don't want it to execute when browsed by user,
say,when browsed should exit,
is there a way to detect whether it's currently Cmmand Line Mode?
It's available to browser,
but I don't want it to execute when browsed by user,
say,when browsed should exit,
is there a way to detect whether it's currently Cmmand Line Mode?
Here is what i'm using, for a long time now... (since php 4 iirc)
(PHP_SAPI !== 'cli' || isset($_SERVER['HTTP_USER_AGENT'])) && die('cli only');
to be used as first line of the php script.
Here is a trick:
You can check for the $argc/$argv parameters which are always available in CLI mode.
#!/usr/bin/php
<?php
ini_set('register_argc_argv', 0);
if (!isset($argc) || is_null($argc))
{
echo 'Not CLI mode';
} else {
echo 'CLI mode';
}
Another trick, $_SERVER
has variables that are only set in CLI mode.
if (!defined('STDIN')) {
// accessed through the web browser
die();
}
I use this when creating PHP CLI scripts. Works very well.