This question is regarding getopt function in php. I need to pass two parameter to the php scripts like
php script.php -f filename -t filetype
Now depending upon the file type which can be u, c or s I need to do proper operation.
I am using switch case for the same:
Here is the Code I am using:
// Get filename of input file when executing through command line.
$file = getopt("f:t:");
Switch case should compare the type of the file which I am passing in from the command line (u, c or i) and accordingly match it and do the operation.
switch("I am not sure what should go in there and this is wrong,Please advice")
{
case `Not sure`:
$p->ini();
break;
case `Not sure`:
$p->iniCon();
break;
case `Not sure`:
$p->iniImp();
break;
}
Kindly advise on this !!!
If you just put something like this in your PHP script (called, on my machine,
temp.php
) :And call it from the command-line, passing those two parameters :
You'll get this kind of output :
Which means that :
$file['f']
contains the value passed for-f
$file['t']
contains the value passed for-t
Starting from there, if you want your
switch
to depend on the option passed as the value of-t
, you'll use something like this :Basically, you put :
switch()
case
sAnd, for more informations, you can read, in the PHP manual :
switch
getopt()
There is a problem in your approach. What if user gives following command line by mistake. the script will not be able to detect it and fail as
$file['t']
will be an array.I implemented a getopt parser for this, support short,long option names, type constraint, option printing.. etc. and this library has been maintained over 6 years.
Synopsis:
GetOptionKit\OptionPrinter can print options for you:
Demo
Please check
examples/demo.php
.Run:
Print:
GetOptionKit is on GitHub: https://github.com/c9s/GetOptionKit