PHP编程:php curl摹拟post哀求提交数据
可以说你的马步已经扎的差不多了,接下来就要开始练把势的时候了,如果有条件的话,用笔或者打印一个简易的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;?>复制代码不出所料,一般显现了,随后就是页面内容的收罗排版成绩了。不过是正则了。(因为是校园网只能我们内网会见)会有很多高手的鼓励,新手的支持,慢慢你劲头就十足,有更多的信心和兴趣去学。 当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标, 再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。 写的比较杂,因为我也是个新手,不当至于大家多多指正。 兴趣是最好的老师,百度是最好的词典。 本文当是我的笔记啦,遇到的问题随时填充 写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。 首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。 微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox支持的不是很好,所以能少用还是少用的好。
页:
[1]