> Phil Ewington - 43 Plc wrote on donderdag 10 juni 2004 14:27:
>
> >> Phil Ewington - 43 Plc wrote on donderdag 10 juni 2004 12:58:
> >>
> >>> Hi All,
> >>>
> >>> Can anyone tell me how to pass arguments to a PHP script from the
> >>> command line? I know I need to use the -args option but how
> >>> exactly, I have tried the following...
> >>>
> >>> /usr/bin/php myscript.php -args key=value
> >>
> >> You don't have to call the -args argument. just run the script from
> >> command line like this:
> >>
> >> php myscript.php value
> >>
> >> Where value is the argument you want to use in the script.
> >> These arguments are stored in an arrray ($argv).
> >>
> >> Do a print_r($argv) and you can see the content.
> >
> > OK, but if no param name is passed in, I assume that the order they
> > are passed in as must be correct or the script will not know what
> > values belong to which parameters? This seems a little odd, I assume
> > that $argv only exists when accessed from the command line? My script
> > needs to be excuted from both command line and from web browsers.
> >
>
> How do you mean the order must be correct. Use some code like this to
> give it an index value.
> for ($counter=0; $counter < $argc; $counter++) {
>    list($key, $value) = each($argv);
>    echo ("key ". $key . "has value : " . $value . "\n");
> }

Your example was...

php myscript.php value

That is just a value, no parameter name as with a query string, take this
example...

php myscript.php a b

Let's say that this was requested from a browser like myscript.php?1=a&2=b

PHP uses 1 & 2 to refer to the values, but the values would get mixed up if
I was to use...

$argv[0] & $argv[1]

and the order of a and b were different when the script was called. Does
that make sense? I find it odd that I need to write more code to 1) check
$_GET and 2) check $argv, also simple error checking will fail for command
line stuff when checking that all the required params are present.


> >From what i understand the argv & argc are only avaliable when the
> script is run from commandline. Just do a check on this and if not
> there get some $_POST or $_GET variables.
>
> >>
> >>>
> >>> but this does not work, the script executes but key is not available
> >>> as $_GET["key"] in my script. Any pointers will be much appreciated.
> >>>
> >>> TIA
> >>>
> >>> Phil.
> >>>
> >>> ---
> >>> Phil Ewington - Technical Director
> >>>
> >>> 43 Plc - Ashdale House
> >>> 35 Broad Street, Wokingham
> >>> Berkshire RG40 1AU
> >>>
> >>> T: +44 (0)1189 789 500
> >>> F: +44 (0)1189 784 994
> >>> E: mailto:[EMAIL PROTECTED]
> >>> W: www.soyouthink.com
> >>>
> >>> ---
> >>> Outgoing mail is certified Virus Free.
> >>> Checked by AVG anti-virus system (http://www.grisoft.com).
> >>> Version: 6.0.701 / Virus Database: 458 - Release Date: 07/06/2004
> >>
> >> ---
> >> Incoming mail is certified Virus Free.
> >> Checked by AVG anti-virus system (http://www.grisoft.com).
> >> Version: 6.0.701 / Virus Database: 458 - Release Date: 07/06/2004
> >>
> > ---
> > Outgoing mail is certified Virus Free.
> > Checked by AVG anti-virus system (http://www.grisoft.com).
> > Version: 6.0.701 / Virus Database: 458 - Release Date: 07/06/2004
>
> ---
> Incoming mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.701 / Virus Database: 458 - Release Date: 07/06/2004
>
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.701 / Virus Database: 458 - Release Date: 07/06/2004

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to