|
Posted by Csaba Gabor on 12/06/07 11:00
Kim wrote:
> I made a php script with a HTML form (POST) which takes many options
> and based on the options, it connects to a database file and create
> some files from the results. This works fine when using a browser.
>
> Now, I am being asked if it can run via CLI. My first reaction was
I assume you mean you are being asked to run it from the command line
> "no", but that was before I even had looked into the matter.
> Running via CLI is preferred instead of having to install a webserver
> solution like WAMP. Also, the target machine which should run the PHP
> script is a standalone (no network of any kind).
as opposed to having a nice web interface for it on a
standalone machine. As you probably know, you can
configure your browsers so that putting in word like
phpadmin into the address bar will redirect it to a
local file (instead of the web at large).
> After reading some about PHP in CLI mode, and experiments have I come
> to this conclusion:
> * php.exe does not support GET, POST or HTML codes (it will displayed
> as raw text)
Unclear what you mean by this. PHP will print out whatever you tell
it to. But if it's CLI (command line interface), then that output
goes to the command window, where of course it is not interpreted
as HTML. If you are writing script to output to two different types
of media, you need to accommodate both types. Adding <pre>...</pre>
tags is often an easy quick fix during testing when varying output
between the command window and the browser.
> * php-cgi.exe does support GET but still not POST or HTML codes.
> This means you can parse parameters to your php script, like: <php-cgi
> path> -n -f <php script> para1=value1 para2=value2 etc. Full access to
> $_GET.
Are you looking for something like this?
if (!$_SERVER['REQUEST_METHOD'])
foreach ($argv as $arg)
if ($pos=strpos($arg, "="))
$_POST[strtolower(substr($arg,0,$pos))] =
substr($arg,$pos+1);
> I still have not found a way to run this script via CLI.
>
> Do I need to re-write the whole thing specially for CLI mode ?
> Is there another way to parse parameters via CLI mode ?
Just make the $_POST et al. variable yourself.
It's useful to always include operating system configuration,
especially when asking about CLI.
Above code tested on Win XP Pro / PHP 5.2.4
Csaba Gabor from Vienna
[Back to original message]
|