找回密码
 立即注册→加入我们

QQ登录

只需一步,快速开始

搜索
热搜: 下载 VB C 实现 编写
查看: 3216|回复: 3

从“WINDOWS开发”到“WEB开发”[1]:编写一个简单的PHP程序并在VBS脚本和C程序里调用

[复制链接]

55

主题

275

回帖

9352

积分

用户组: 管理员

UID
77
精华
16
威望
237 点
宅币
8217 个
贡献
251 次
宅之契约
0 份
在线时间
254 小时
注册时间
2014-2-22
发表于 2018-1-4 17:31:38 | 显示全部楼层 |阅读模式

欢迎访问技术宅的结界,请注册或者登录吧。

您需要 登录 才可以下载或查看,没有账号?立即注册→加入我们

×

首先把以下代码保存到:C:\Apache24\htdocs\index.php。
它的功能很简单,先把三个数字相加并输出结果,然后把传入的三个数字保存到LOG文件。简单来说,就是个带历史纪录的网页加法计算器。
  1. <?php
  2. $result = $_POST["v1"] + $_POST["v2"] + $_POST["v3"];
  3. echo "result = " . $result . "<br>\r\n";
  4. $now = getdate();
  5. if(is_dir("log") === false)
  6. {
  7.     mkdir("log");
  8. }
  9. $fp = fopen("log\" . $now[0] . ".txt","w");
  10. fprintf($fp, "%s\r\n", $_POST["v1"]);
  11. fprintf($fp, "%s\r\n", $_POST["v2"]);
  12. fprintf($fp, "%s\r\n", $_POST["v3"]);
  13. fclose($fp);
  14. ?>
  15. <form method = "post" action="index.php" name="asd">
  16. <input type="text" name="v1" value="111"></input><br>
  17. <input type="text" name="v2" value="222"></input><br>
  18. <input type="text" name="v3" value="333"></input><br>
  19. <input type="submit" value="Submit">
  20. </form>
复制代码

直接测试很简单,打开任意浏览器,输入localhost并回车,就能看到效果了。而我的目的并不是用手动调用,而是使用程序来调用。
下面直接给出VBS和C语言程序调用的源码(本质上就是组HTTP请求报文,然后得到HTTP响应报文)。源码没有注释,如果不懂请查阅MSDN,毕竟这篇文章针对的不是纯小白,而是WINDOWS开发的老司机。
  1. sUrl = "http://localhost/index.php"
  2. sRequest = "v1=111&v2=222&v3=333"
  3. msgbox HTTPPost(sUrl, sRequest)
  4. Function HTTPPost(sUrl, sRequest)
  5.         set oHTTP = CreateObject("Microsoft.XMLHTTP")
  6.         oHTTP.open "POST", sUrl, false
  7.         oHTTP.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
  8.         oHTTP.setRequestHeader "Content-Length", Len(sRequest)
  9.         oHTTP.send sRequest
  10.         HTTPPost = oHTTP.responseText
  11. End Function
复制代码
游客,如果您要查看本帖隐藏内容请回复
这两段程序得到的内容略有不同。VBS程序得到的内容只有网页的HTML代码,而C程序得到的内容还包括HTTP响应头。
回复

使用道具 举报

1111

主题

1651

回帖

7万

积分

用户组: 管理员

一只技术宅

UID
1
精华
244
威望
743 点
宅币
24239 个
贡献
46222 次
宅之契约
0 份
在线时间
2297 小时
注册时间
2014-1-26
发表于 2018-1-4 17:39:22 | 显示全部楼层
竟然写缩进拳!

我推荐在判断到错误的时候goto到一个固定的位置,然后统一处理错误。
缩进拳还是比较坑爹的。

另外我建议不用puts报错,因为它会把错误输出到stdout。建议用fputs把错误输出到stderr。
回复 赞! 靠!

使用道具 举报

0

主题

6

回帖

23

积分

用户组: 初·技术宅

UID
3104
精华
0
威望
0 点
宅币
17 个
贡献
0 次
宅之契约
0 份
在线时间
8 小时
注册时间
2017-11-18
发表于 2018-1-6 08:03:49 | 显示全部楼层
个简单的PHP程序并在VBS脚本
回复 赞! 靠!

使用道具 举报

0

主题

2

回帖

21

积分

用户组: 初·技术宅

UID
3312
精华
0
威望
2 点
宅币
15 个
贡献
0 次
宅之契约
0 份
在线时间
0 小时
注册时间
2018-1-6
发表于 2018-1-6 17:06:56 | 显示全部楼层
看看 谢谢  
回复 赞! 靠!

使用道具 举报

QQ|Archiver|小黑屋|技术宅的结界 ( 滇ICP备16008837号 )|网站地图

GMT+8, 2024-4-24 03:33 , Processed in 0.038290 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表