从“WINDOWS开发”到“WEB开发”[1]:编写一个简单的PHP程序并在VBS脚本和C程序里调用
上一篇:WINDOWS下利用Apache和PHP配置简单的WEB服务器首先把以下代码保存到:C:\Apache24\htdocs\index.php。
它的功能很简单,先把三个数字相加并输出结果,然后把传入的三个数字保存到LOG文件。简单来说,就是个带历史纪录的网页加法计算器。<?php
$result = $_POST["v1"] + $_POST["v2"] + $_POST["v3"];
echo "result = " . $result . "<br>\r\n";
$now = getdate();
if(is_dir("log") === false)
{
mkdir("log");
}
$fp = fopen("log\\" . $now . ".txt","w");
fprintf($fp, "%s\r\n", $_POST["v1"]);
fprintf($fp, "%s\r\n", $_POST["v2"]);
fprintf($fp, "%s\r\n", $_POST["v3"]);
fclose($fp);
?>
<form method = "post" action="index.php" name="asd">
<input type="text" name="v1" value="111"></input><br>
<input type="text" name="v2" value="222"></input><br>
<input type="text" name="v3" value="333"></input><br>
<input type="submit" value="Submit">
</form>
直接测试很简单,打开任意浏览器,输入localhost并回车,就能看到效果了。而我的目的并不是用手动调用,而是使用程序来调用。
下面直接给出VBS和C语言程序调用的源码(本质上就是组HTTP请求报文,然后得到HTTP响应报文)。源码没有注释,如果不懂请查阅MSDN,毕竟这篇文章针对的不是纯小白,而是WINDOWS开发的老司机。
sUrl = "http://localhost/index.php"
sRequest = "v1=111&v2=222&v3=333"
msgbox HTTPPost(sUrl, sRequest)
Function HTTPPost(sUrl, sRequest)
set oHTTP = CreateObject("Microsoft.XMLHTTP")
oHTTP.open "POST", sUrl, false
oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
oHTTP.setRequestHeader "Content-Length", Len(sRequest)
oHTTP.send sRequest
HTTPPost = oHTTP.responseText
End Function**** Hidden Message *****这两段程序得到的内容略有不同。VBS程序得到的内容只有网页的HTML代码,而C程序得到的内容还包括HTTP响应头。 竟然写缩进拳!
我推荐在判断到错误的时候goto到一个固定的位置,然后统一处理错误。
缩进拳还是比较坑爹的。
另外我建议不用puts报错,因为它会把错误输出到stdout。建议用fputs把错误输出到stderr。
个简单的PHP程序并在VBS脚本 看看 谢谢
页:
[1]