私は、phpスクリプトを実行するbashスクリプトを実行しました。パラメータがなくても正常に機能しますが、パラメータ(idとurl)を追加すると、いくつかのエラーが発生します。
PHP Deprecated: Comments starting with '#' are deprecated in /etc/php5/cli/conf .d/mcrypt.ini on line 1 in Unknown on line 0
Could not open input file: /var/www/dev/dbinsert/script/automatisation.php? id=1
次のようにbashからphpスクリプトを実行します。
php /var/www/dev/dbinsert/script/automatisation.php?id=19&url=http://bkjbezjnkelnkz.com
それを次のように呼びます:
php /path/to/script/script.php -- 'id=19&url=http://bkjbezjnkelnkz.com'
また、PHPスクリプトを使用して parse_str() を変更します。
parse_str($argv[1]);
インデックス$_SERVER['REMOTE_ADDR']
が設定されていません。
より高度な処理には getopt() が必要な場合がありますが、 parse_str() を使用すると簡単に動作します。
GETクエリパラメータをPHPコマンドラインインターフェースに渡すことはできません。引数を標準のコマンドライン引数として渡し、 $argc
および$argv
グローバル を使用してそれらを読み取ってください。 、または(GET/POSTパラメータを使用する必要がある場合)curl/wgetを介してスクリプトを呼び出し、その方法でパラメータを渡します。ローカルWebサーバーを介してスクリプトにアクセスできる場合を想定しています。
これは、$argc
と$argv
によって読み取られる引数を渡す方法です(-は、後続のすべての引数がPHPインタープリターバイナリではなく)スクリプトに渡されることを示します)。
php myfile.php -- argument1 argument2
-オプション1:php-cgi-
スクリプトを実行するには、「php」の代わりに「php-cgi」を使用します。これを使用するためにphpコードを特別に変更する必要がないため、これが最も簡単な方法です。
php-cgi -f /my/script/file.php id=19 myvar=xyz
-オプション2:Webサーバーがある場合-
PHPファイルがWebサーバー上にある場合は、コマンドラインで「wget」を使用できます。
wget 'http://localhost/my/script/file.php?id=19&myvar=xyz'
または:
wget -q -O - "http://localhost/my/script/file.php?id=19&myvar=xyz"
-phpの変数にアクセスする-
オプション1と2の両方で、次のようにこれらのパラメーターにアクセスします。
$id = $_GET["id"];
$myvar = $_GET["myvar"];