环境:Windows 7, PHP 5.3.13, Apache 2.2.22 (WAMP)在本地工作访问外部web服务
我试图通过批处理命令提示符内的URL在PHP中分配一个全局变量来调用web服务。请看下面的批处理行:
C:wampbinphpphp5.3.13php.exe" -q "C:wampwwwtestscriptsapiTest.php?itemID=%1"> API_Log%dtStamp%.txt使用实际的项目ID运行这个bat文件:C: wamp www 测试脚本 apiTest.bat 1234567
我得到一个未定义的索引错误和匹配404未找到。在检查HTTP数据包时,我注意到URL删除了(从未接收到)我在执行字符串中指定的itemID。HTTP信息:http://api.service.com/items//items.xmlhttp://api.service.com/items/(missing此处标识信息)/items.xml
我绝对可以直接从cmd/batch访问带有参数的特定url,并且我直接将变量键入url并在浏览器中执行此过程,没有问题。
我怀疑将api url直接发送到带参数的php可执行文件是不可能的。id号没有正确添加,甚至根本没有添加。什么好主意吗?
与其发送GET请求,不如使用如下方式:
start /b "C:wampbinphpphp5.3.13php.exe" -q "C:wampwwwtestscriptsapiTest.php %1" > API_Log%dtStamp%.txt
,然后使用argv变量访问数据。
echo $argv[1];
所以运行C:wampwwwtestscriptsapiTest.bat 1234567
将返回1234567
也只是以防万一你需要它,命令在$argv[0]
中运行,我有时在输出我的脚本语法时使用它。例如:
echo "Syntax: {$argv[0]} [username]";