0

環境:Windows 7、PHP 5.3.13、Apache 2.2.22(WAMP)ローカルでの作業外部Webサービスへのアクセス

Webサービスを呼び出すためのバッチコマンドプロンプト内のURLを介してPHPでグローバル変数を割り当てようとしています。次のバッチ行を参照してください。

/ b "C:\ wamp \ bin \ php \ php5.3.13 \ php.exe" -q "C:\ wamp \ www \ test \ scripts \ apiTest.php?itemID =%1"> API_Log%dtStamp%を開始します。 TXT

実際のアイテムIDでこのbatファイルを実行すると:C:\ wamp \ www \ test \ scripts \ apiTest.bat 1234567

未定義のインデックスエラーが発生し、一致する404が見つかりません。HTTPパケットを検査すると、実行文字列で指定したitemIDがURLから削除された(受信されなかった)ことに気付きました。HTTP情報: http ://api.service.com/items//items.xml http://api.service.com/items/ ここに識別情報がありません)/items.xml

cmd / batchから直接引数を使用して特定のURLに確実にアクセスでき、変数をURLに直接入力して、このプロセスをブラウザーで問題なく実行しました。

引数を使用してapiurlをphp実行可能ファイルに直接送信することはできないと思われます。ID番号が正しく追加されていないか、まったく追加されていません。何か案は?

4

1 に答える 1

0

GET リクエストのように送信する代わりに、次のようなものを使用する必要があります。

start /b "C:\wamp\bin\php\php5.3.13\php.exe" -q "C:\wamp\www\test\scripts\apiTest.php %1" > API_Log%dtStamp%.txt

次に、argv 変数を使用してそのデータにアクセスします。

echo $argv[1];

だから走るC:\wamp\www\test\scripts\apiTest.bat 1234567と響く1234567

また、必要に応じてコマンドを で実行し$argv[0]ます。スクリプトの構文を出力するときに、これを使用することがあります。例えば:

echo "Syntax: {$argv[0]} [username]";
于 2013-03-12T16:38:38.963 に答える