环境:Windows 7,PHP 5.3.13,Apache 2.2.22(WAMP) 在当地工作 访问外部Web服务
我正在尝试通过批处理命令提示符内的URL在PHP中分配一个全局变量来调用Web服务。请参阅以下批次行:
start / 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数据包时,我注意到URL已经丢弃(从未收到)我在执行字符串中指定的itemID。 HTTP信息: http://api.service.com/items//items.xml 这里有http://api.service.com/items/(missing标识信息)/items.xml
我绝对可以直接从cmd / batch访问带有参数的特定网址,我直接将该变量输入到网址中,并在浏览器中执行此过程没有任何问题。
我怀疑将api url直接发送到php可执行文件,因为参数不可能。身份证号码没有正确附加,甚至根本没有追加。有任何想法吗?
答案 0 :(得分: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]";