最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php curl常用的5個(gè)經(jīng)典例子

 更新時(shí)間:2017年01月20日 11:00:18   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇php curl常用的5個(gè)經(jīng)典例子。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

我用php ,curl主要是抓取數(shù)據(jù),當(dāng)然我們可以用其他的方法來(lái)抓取,比如fsockopen,file_get_contents等。但是只能抓那些能直接訪問(wèn)的頁(yè)面,如果要抓取有頁(yè)面訪問(wèn)控制的頁(yè)面,或者是登錄以后的頁(yè)面就比較困難了。

1,抓取無(wú)訪問(wèn)控制文件

<?php 
 $ch = curl_init(); 
 curl_setopt($ch, CURLOPT_URL, "http://localhost/mytest/phpinfo.php"); 
 curl_setopt($ch, CURLOPT_HEADER, false); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //如果把這行注釋掉的話,就會(huì)直接輸出 
 $result=curl_exec($ch); 
 curl_close($ch); 
 ?> 

2,使用代理進(jìn)行抓取

為什么要使用代理進(jìn)行抓取呢?以google為例吧,如果去抓google的數(shù)據(jù),短時(shí)間內(nèi)抓的很頻繁的話,你就抓取不到了。google對(duì)你的ip地址做限制這個(gè)時(shí)候,你可以換代理重新抓。

<pre name="code" class="php"><?php 
 $ch = curl_init(); 
 curl_setopt($ch, CURLOPT_URL, "http://blog.51yip.com"); 
 curl_setopt($ch, CURLOPT_HEADER, false); 
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
 curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE); 
 curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080); 
 //url_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');如果要密碼的話,加上這個(gè) 
 $result=curl_exec($ch); 
 curl_close($ch); 
 ?> 

3,post數(shù)據(jù)后,抓取數(shù)據(jù)

單獨(dú)說(shuō)一下數(shù)據(jù)提交數(shù)據(jù),因?yàn)橛?curl的時(shí)候,很多時(shí)候會(huì)有數(shù)據(jù)交互的,所以比較重要的。

<?php 
 $ch = curl_init(); 
 /*在這里需要注意的是,要提交的數(shù)據(jù)不能是二維數(shù)組或者更高 
 *例如array('name'=>serialize(array('tank','zhang')),'sex'=>1,'birth'=>'20101010') 
 *例如array('name'=>array('tank','zhang'),'sex'=>1,'birth'=>'20101010')這樣會(huì)報(bào)錯(cuò)的*/ 
 $data = array('name' => 'test', 'sex'=>1,'birth'=>'20101010'); 
 curl_setopt($ch, CURLOPT_URL, 'http://localhost/mytest/curl/upload.php'); 
 curl_setopt($ch, CURLOPT_POST, 1); 
 curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
 curl_exec($ch); 
 ?> 

在 upload.php文件中,print_r($_POST);利用curl就能抓取出upload.php輸出的內(nèi)容Array ( [name] => test [sex] => 1 [birth] => 20101010 )

4,抓取一些有頁(yè)面訪問(wèn)控制的頁(yè)面

以前寫過(guò)一篇,頁(yè)面訪問(wèn)控制的3種方法有興趣的可以看一下。

如果用上面提到的方法抓的話,會(huì)報(bào)以下錯(cuò)誤

You are not authorized to view this page
You do not have permission to view this directory or page using the credentials that you supplied because your Web browser is sending a WWW-Authenticate header field that the Web server is not configured to accept.

這個(gè)時(shí)候,我們就要用CURLOPT_USERPWD來(lái)進(jìn)行驗(yàn)證了

<?php 
 $ch = curl_init(); 
 curl_setopt($ch, CURLOPT_URL, "http://club-china"); 
 /*CURLOPT_USERPWD主要用來(lái)破解頁(yè)面訪問(wèn)控制的 
 *例如平時(shí)我們所以htpasswd產(chǎn)生頁(yè)面控制等。*/ 
 //curl_setopt($ch, CURLOPT_USERPWD, 'user:password'); 
 curl_setopt($ch, CURLOPT_HTTPGET, 1); 
 curl_setopt($ch, CURLOPT_REFERER, "http://club-china"); 
 curl_setopt($ch, CURLOPT_HEADER, 0); 
 $result=curl_exec($ch); 
 curl_close($ch); 
 ?> 

以上這篇php curl常用的5個(gè)經(jīng)典例子就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

讷河市| 鹤庆县| 峡江县| 盐池县| 勃利县| 陈巴尔虎旗| 建德市| 五常市| 焉耆| 太仓市| 沾益县| 南丰县| 恩施市| 新绛县| 九寨沟县| 小金县| 中方县| 铜川市| 漳平市| 江川县| 荔波县| 扎赉特旗| 房山区| 延津县| 安龙县| 黔东| 鄂伦春自治旗| 织金县| 曲松县| 通渭县| 商洛市| 伽师县| 盐源县| 应城市| 含山县| 商城县| 黄冈市| 隆林| 百色市| 济源市| 达拉特旗|