设为首页 收藏本站
查看: 1222|回复: 0

[经验分享] C++ 与 php 的交互 之----- C++ 获取 网页文字内容,获取 php 的 echo 值。

[复制链接]

尚未签到

发表于 2015-8-23 08:59:57 | 显示全部楼层 |阅读模式
  转载请声明出处!
  http://www.iyunv.com/linguanh/category/633252.html
        距离上次 谈 C++ 制作json 或者其他数据传送给 服务器,时隔两个多月。
        链接:http://www.iyunv.com/linguanh/p/4340119.html
  
        这次是从服务器上 中获取 文字内容到控制台,或者写入本地文本等操作,废话不多说,开讲。
  
  -----------------------------------------------------------分割线-------------------------------------------------------------
  测试服务器是: 新浪云 sea;
  测试内容:获取 由 php 脚步从服务器中 读取出来的 数据,我这里是 微信用户的openID;
  工具:VS 2012;
  
  先上直观的图片,后上文本源码
  总体例子
DSC0000.png
  
  核心函数
   DSC0001.jpg
  
  
  对于多字节wchar 到 lpcswtr 的转化函数介绍,请转到 该链接
  http://www.iyunv.com/linguanh/p/4241939.html
DSC0002.png
  



1 #include <iostream>
2 #include <fstream>
3 #include <Windows.h>
4 #include <wininet.h>
5 #define MAXBLOCKSIZE 28+1 // openID 固定长 28
6 #pragma   comment(lib,"wininet.lib") //引入动态库
7
8 char* getWeiXinFromUserNameFromSEA(const char*);
9 using namespace std;
10
11 int main(){
12     char *p=NULL; //用于存放返回结果
13     p=getWeiXinFromUserNameFromSEA("http://913337456-my.stor.sinaapp.com/xxx.txt");
14
15     cout<<p;
16     return 0 ;
17 }
18  
19 //我这里设置了函数 带有 返回值,大家可以不适用返回值!
20 char* getWeiXinFromUserNameFromSEA(const char *Url){
21     char *str = new char[MAXBLOCKSIZE]; // 用于最后返回的结果,动态分配
22     const char *x="From_AF"; int i = 0;//第一个是打开标记,i是下面的转化控制变量
23     WCHAR exchange_text_from_url[256],exchange_text_from_x[256];
24     LPCWSTR py = exchange_text_from_url;// url 转 lpcwstr 的中间变量
25     LPCWSTR pz = exchange_text_from_x; //另外的信息
26     //unicode编码 下的 设置,我这里使用了宽字节,免去转换的麻烦
27     MultiByteToWideChar( 0, 0,x, -1,exchange_text_from_x, 64 );//WCHAR to LPCWSTR,转化
28     MultiByteToWideChar( 0, 0,Url, -1, exchange_text_from_url, 256 );
29     //结束转化
30     HINTERNET handle_for_init_internet = InternetOpen("From_AF", INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0);
31      if (handle_for_init_internet != NULL){
32          HINTERNET handle_for_read_info = InternetOpenUrl(handle_for_init_internet, Url, NULL,NULL,NULL,NULL);
33          if (handle_for_read_info != NULL){
34              char result[MAXBLOCKSIZE]; //用于保存 缓冲区的数据组合
35              char buffer[MAXBLOCKSIZE];//下载文件的缓冲区
36              DWORD bytes_read = 1;//下载的字节数
37              BOOL temp_boolean;
38              while(bytes_read!=0){
39                  //使用 InternetReadFile 从缓存区 读取 数据到 buffer 字符串,要度的字节数是 buffer的有效长度,控制是 bytes_read
40                  temp_boolean = InternetReadFile(handle_for_read_info,buffer,sizeof(buffer), &bytes_read);      
41              }
42              for(i;i<MAXBLOCKSIZE-1;i++){
43                  if(i==MAXBLOCKSIZE-2 && buffer=='0'){ //去掉最后的干扰值 0
44
45                  }else if(buffer>=34 && buffer<=126){ //多种测试,最终还是使用 ASCII 码范围判断来解决了 烫烫烫~~~~
46                     //cout<<buffer; //通过使用循环 针对性地 输出单个 字符消除缓冲区的其他混杂 空量
47                     //这里不直接搞出 buffer 是因为,缓存区里有很多 不知什么数据在输出的时候会变成很多烫,一般是空才会有烫
48                      result=buffer;  //经过测试,这个逐个赋值能够去掉 其中夹杂的 烫~~~
49                  }
50              }
51              result='\0'; //赋值 结尾 符,防止 自身爆 烫
52              strcpy(str,result); //copy 给 字符串指针,用于返回
53              //安全操作,销毁句柄
54              InternetCloseHandle(handle_for_read_info); handle_for_read_info = NULL;
55          }
56          InternetCloseHandle(handle_for_init_internet); handle_for_init_internet = NULL;
57          return str;
58     }
59 }
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-102833-1-1.html 上篇帖子: Websocket协议之php实现 下篇帖子: PHP三层结构(下)——PHP实现AOP
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

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