仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 687|回复: 8
打印 上一主题 下一主题

[学习教程] PHP编程:php curl摹拟post哀求提交数据

[复制链接]
透明 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:11:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的PHP手册在身上,时不时的摸出来看看,记得,去WC也不能放过(^2^)。 比来在做校园藏书楼图手札息的收罗程序,既然是藏书楼图书的收罗,一定有提交搜刮的页面,不过是post提交,让我想到了curl摹拟提交,起首经由过程firebug举行抓包查询下post提交后的格局以下:txtWxlx=CN&hidWxlx=spanCNLx&txtPY=HZ&txtTm=%D2%F4%C0%D6&txtLx=%25&txtSearchType=1&nMaxCount=100&nSetPageSize=10&cSortFld=%D5%FD%CC%E2%C3%FB&B1=%BC%EC+%CB%F7;搜刮的关头字name=txtTm,随儿女码以下:复制代码<?php$keyword="音乐";$post="txtWxlx=CN&hidWxlx=spanCNLx&txtPY=HZ&txtTm={$keyword}&txtLx=%25&txtSearchType=1&nMaxCount=100&nSetPageSize=20&cSortFld=%D5%FD%CC%E2%C3%FB&B1=%BC%EC+%CB%F7";$url="http://210.30.68.130/wxjs/tmjs.asp";//查询地点$ch=curl_init();curl_setopt($ch,CURLOPT_REFERER,"http://210.30.68.130/wxjs/tmjs_form.asp/");//摹拟来历curl_setopt($ch,CURLOPT_URL,$url);//URLcurl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch,CURLOPT_HEADER,false);curl_setopt($ch,CURLOPT_POST,1);//摹拟POSTcurl_setopt($ch,CURLOPT_POSTFIELDS,$post);//POST内容curl_exec($ch);$output=curl_close($ch);echo$output;?>复制代码但前往的页面老是显现没有相干内容,假如把关头字改成英语大概数字就能够一般显现了,因而想到这应当是编码成绩,然后在post下面能够看到txtTm=%D2%F4%C0%D6经由查询得知这是url编码,汉字会举行转化,假如是英语则不会产生任何改动,因而就把头信息也加了部份内容出来以下:$header=array();$header[]=User-Agent:Mozilla/5.0(WindowsNT6.1;rv:30.0)Gecko/20100101Firefox/30.0;$header[]=Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8;$header[]=Connection:keep-alive;$header[]=Content-Type:application/x-www-form-urlencoded;curl_setopt($ch,CURLOPT_HTTPHEADER,$header);实在次要是$header[]=Content-Type:application/x-www-form-urlencoded;再次加载页面后假如是汉字显现仍是没有相干的内容,随后想到了一个很复杂的成绩地点,php程序是utf8的,但是藏书楼的网站是gb2312,好吧,再加上一句,$keyword=iconv(UTF-8,GB2312,$keyword);再次加载乐成,这个应当才是成绩关头地点,然后我把头信息删除后增加一句$keyword=urlencode($keyword);再次加载也就是上面的代码:复制代码<?php$keyword="天下";$keyword=iconv(UTF-8,GB2312,$keyword);$keyword=urlencode($keyword);$post="txtWxlx=CN&hidWxlx=spanCNLx&txtPY=HZ&txtTm={$keyword}&txtLx=%25&txtSearchType=1&nMaxCount=100&nSetPageSize=20&cSortFld=%D5%FD%CC%E2%C3%FB&B1=%BC%EC+%CB%F7";$url="http://210.30.68.130/wxjs/tmjs.asp";//查询地点$ch=curl_init();curl_setopt($ch,CURLOPT_REFERER,"http://210.30.68.130/wxjs/tmjs_form.asp/");//摹拟来历curl_setopt($ch,CURLOPT_URL,$url);//URLcurl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);curl_setopt($ch,CURLOPT_HEADER,false);curl_setopt($ch,CURLOPT_POST,1);//摹拟POSTcurl_setopt($ch,CURLOPT_POSTFIELDS,$post);//POST内容curl_exec($ch);$output=curl_close($ch);echo$output;?>复制代码不出所料,一般显现了,随后就是页面内容的收罗排版成绩了。不过是正则了。(因为是校园网只能我们内网会见)会有很多高手的鼓励,新手的支持,慢慢你劲头就十足,有更多的信心和兴趣去学。
因胸联盟 该用户已被删除
沙发
发表于 2015-1-18 21:53:43 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
板凳
发表于 2015-1-24 16:43:48 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
山那边是海 该用户已被删除
地板
发表于 2015-2-2 11:15:16 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
若相依 该用户已被删除
5#
发表于 2015-2-7 18:53:23 | 只看该作者
兴趣是最好的老师,百度是最好的词典。
海妖 该用户已被删除
6#
发表于 2015-2-23 00:38:47 | 只看该作者
本文当是我的笔记啦,遇到的问题随时填充
第二个灵魂 该用户已被删除
7#
发表于 2015-3-7 05:10:26 | 只看该作者
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
愤怒的大鸟 该用户已被删除
8#
发表于 2015-3-14 13:37:51 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
admin 该用户已被删除
9#
发表于 2015-3-21 09:36:25 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-9-28 10:15

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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