0

环境:Windows 7、PHP 5.3.13、Apache 2.2.22 (WAMP) 在本地工作 访问外部 Web 服务

我试图通过批处理命令提示符内的 URL 在 PHP 中分配一个全局变量以调用 Web 服务。请参阅以下批处理行:

开始 /b "C:\wamp\bin\php\php5.3.13\php.exe" -q "C:\wamp\www\test\scripts\apiTest.php?itemID=%1" > API_Log%dtStamp%.文本文件

使用实际项目 ID 运行此 bat 文件时:C:\wamp\www\test\scripts\apiTest.bat 1234567

我得到一个未定义的索引错误并且找不到匹配的 404。检查 HTTP 数据包后,我注意到 URL 已丢弃(从未收到)我在执行字符串中指定的 itemID。HTTP 信息: http ://api.service.com/items//items.xml http://api.service.com/items/ 此处缺少标识信息)/items.xml

我绝对可以直接从 cmd/batch 使用参数访问特定的 url,并且我直接将变量输入到 url 并在浏览器中毫无问题地执行此过程。

我怀疑无法将 api url 直接发送到带有参数的 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

另外,以防万一您需要它,命令 run in $argv[0],我有时会在输出脚本的语法时使用它。例如:

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