在本地wamp设置的批处理文件中通过url传递php变量


Passing a php variable via url in a batch file on local wamp setup

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

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

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 '测试脚本' ' 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:'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]";