2012年11月29日 星期四

[php]curl




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8;"/>
<title>這是標題</title>
</head>
<body>
<?php
$ch=curl_init();//初始化
//curl_setopt為一個curl設置參數
//而以抓取yahoo為例,若我們要偽裝成google bot去抓取,那麼我們可以寫成下列的樣子
//curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);//設置curl數,要求結果保存到字串中還是輸出到螢幕上。講curl_exec()獲取的信息以文件流的形式返回,而不是直接輸出。將結果回傳成字串。false的話,網頁最下面就會多一個1
//curl_setopt($ch,CURLOPT_URL,"www.yahoo.com.tw");
//curl_setopt($ch,CURLOPT_HEADER,false);  //設置header  ture的話會顯示HTTP/1.1 301 Moved Permanently Date: Fri, 02 。是否截取header的資訊
//curl_setopt($ch,CURLOPT_USERAGENT,"Google Bot"); //在HTTP請求中包含一個」user-agent」頭的字符串。瀏覽器的user agent
//curl_setopt($ch,CURLOPT_FOLLOWLOCATION,true);  //是否抓取轉址。輸入的網址就會顯示在這個頁面上

//POST傳送
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_URL,"http://localhost/test2.php");  //設置要抓取的url。設定截取網址
curl_setopt($ch, CURLOPT_POST, true); // 啟用POST
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query( array( "a1"=>"123", "a2"=>"321") ));
//GET傳送
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_URL,"http://localhost/test2.php?a3=cc&a4=bb");  //設置要抓取的url。設定截取網址

$output=curl_exec($ch);  //執行curl
curl_close($ch);  //關閉curl
if($output===false){ // 用=== 而非 ==  是因為我們得區分出空值和布林值false
echo "cURL Error:".curl_error($ch);
}else{
echo $output;
}
?>
</body>
</html>

沒有留言:

張貼留言