私の質問はおそらく簡単に答えるでしょう。私は、GETを使用したことを除いていることを行う方法があるシェルを使ってphpにパラメータを渡す
php test.php parameter1 parameter2
シェル 例を経由してシェルで私のPHPファイルを実行し、それにパラメータを渡したいですか?
おかげ
私の質問はおそらく簡単に答えるでしょう。私は、GETを使用したことを除いていることを行う方法があるシェルを使ってphpにパラメータを渡す
php test.php parameter1 parameter2
シェル 例を経由してシェルで私のPHPファイルを実行し、それにパラメータを渡したいですか?
おかげ
はい、そのようにすることができますが、$_SERVER['argv']
配列の引数を参照する必要があります。 $_SERVER['argc']
は、受け取ったargの数を通知します。必要な数のargが入力されたことを確認するために、最初の検証レイヤーとして使用する必要がある場合は、受け取ったargsの数が表示されます。
#!/usr/bin/php
<?php
var_dump($argv);
?>
意志出力:
array(4) {
[0]=>
string(8) "args.php"
[1]=>
string(4) "arg1"
[2]=>
string(4) "arg2"
[3]=>
string(4) "arg3"
}
ここでは、実用的な例です。この例では
、我々は作成しますargs.php arg1 arg2 arg3
として次のスクリプトを実行し、これを説明するために
特定の日付以降の日数を出力するスクリプト(days.php)。月、日、年の3つのパラメータを数値として受け取ります。
#!/usr/bin/php
<?php
if($argc < 4 || !is_numeric($argv[1]) || !is_numeric($argv[2]) || !is_numeric($argv[3]))
{
echo "Usage: $argv[0] mm dd yyyy\n";
}
else
{
$pastdate = mktime(0, 0, 0, $argv[1], $argv[2], $argv[3]);
$diff = time() - $pastdate;
$days = round($diff/60/60/24);
echo "$days days since $argv[1]/$argv[2]/$argv[3]\n";
}
?>
シェルコール:
`$ ./days 11 17 1988` OR `php days.php 11 17 1988`
は出力:
7699 days since 11/17/1988
この情報がお役に立てば幸いです。
チュートリアルのリンク「PHP throuh SHELLへのアクセス」は、スパムサイトにリダイレクトされます。 – Avi