導航:首頁 > 編程語言 > phpcurlutf8

phpcurlutf8

發布時間:2024-03-05 22:04:04

php curl中CURLOPT_HTTPHEADER 這個參數的含義

php curl中CURLOPT_HTTPHEADER 這個參數的含義是:CURLOPT_HTTPHEADER 一個用來設置HTTP頭欄位的數組。Content-Type 表示後面的文檔屬於什麼MIME類型。charset表示瀏覽器可接受的字元集。

HTTP頭Servlet默認為text/plain,但通常需要顯式地指定為text/html。由於經常要設置Content-Type,因此HttpServletResponse提供了一個專用的方法setContentType。

HTTP請求頭的部分類型:

1、Accept:瀏覽器可接受的MIME類型。

2、Accept-Charset:瀏覽器可接受的字元集。

3、Accept-Encoding:瀏覽器能夠進行解碼的數據編碼方式,比如gzip。Servlet能夠向支持gzip的瀏覽器返回經gzip編碼的HTML頁面。許多情形下這可以減少5到10倍的下載時間。

4、Connection:表示是否需要持久連接。如果Servlet看到這里的值為「Keep-Alive」,或者看到請求使用的是HTTP 1.1(HTTP 1.1默認進行持久連接),它就可以利用持久連接的優點,當頁麵包含多個元素時(例如Applet,圖片),顯著地減少下載所需要的時間。

5、Content-Length:表示請求消息正文的長度。

6、Cookie:這是最重要的請求頭信息之一。

(1)phpcurlutf8擴展閱讀:

PHP中的CURL函數庫(部分):

1、curl_setopt_array — 為cURL傳輸會話批量設置選項

2、curl_setopt — 設置一個cURL傳輸選項

3、curl_close — 關閉一個cURL會話

4、curl__handle — 復制一個cURL句柄和它的所有選項

5、curl_errno — 返回最後一次的錯誤號

6、curl_error — 返回一個保護當前會話最近一次錯誤的字元串

7、curl_escape — 使用 URL 編碼給定的字元串

在實際的使用當中,使用得最多的函數是curl_setopt — 設置一個cURL傳輸選項說明:bool curl_setopt ( resource $ch , int $option , mixed $value )其中,ch 由 curl_init() 返回的 cURL 句柄。option 表示的是需要設置的CURLOPT_XXX選項。

option的可選參數:

1、CURLOPT_BUFFERSIZE 每次獲取的數據中讀入緩存的大小,但是不保證這個值每次都會被填滿。在cURL 7.10中被加入。

2、CURLOPT_CLOSEPOLICY 不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,還存在另外三個CURLCLOSEPOLICY_,但是cURL暫時還不支持。

3、CURLOPT_CONNECTTIMEOUT 在發起連接前等待的時間,如果設置為0,則無限等待。

② php獲取數據為什麼curl獲取不完整

因為,PHP CURL庫默認1024位元組的長度不等待數據的返回,所以你那段代碼需增加一項配置:

curl_setopt($ch, CURLOPT_HTTPHEADER, array('Expect:'));
給你一個更全面的封裝方法:

function req_curl($url, &$status = null, $options = array())
{
$res = '';
$options = array_merge(array(
'follow_local' => true,
'timeout' => 30,
'max_redirects' => 4,
'binary_transfer' => false,
'include_header' => false,
'no_body' => false,
'cookie_location' => dirname(__FILE__) . '/cookie',
'useragent' => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1',
'post' => array() ,
'referer' => null,
'ssl_verifypeer' => 0,
'ssl_verifyhost' => 0,
'headers' => array(
'Expect:'
) ,
'auth_name' => '',
'auth_pass' => '',
'session' => false
) , $options);
$options['url'] = $url;
$s = curl_init();
if (!$s) return false;
curl_setopt($s, CURLOPT_URL, $options['url']);
curl_setopt($s, CURLOPT_HTTPHEADER, $options['headers']);
curl_setopt($s, CURLOPT_SSL_VERIFYPEER, $options['ssl_verifypeer']);
curl_setopt($s, CURLOPT_SSL_VERIFYHOST, $options['ssl_verifyhost']);
curl_setopt($s, CURLOPT_TIMEOUT, $options['timeout']);
curl_setopt($s, CURLOPT_MAXREDIRS, $options['max_redirects']);
curl_setopt($s, CURLOPT_RETURNTRANSFER, true);
curl_setopt($s, CURLOPT_FOLLOWLOCATION, $options['follow_local']);
curl_setopt($s, CURLOPT_COOKIEJAR, $options['cookie_location']);
curl_setopt($s, CURLOPT_COOKIEFILE, $options['cookie_location']);
if (!empty($options['auth_name']) && is_string($options['auth_name']))
{
curl_setopt($s, CURLOPT_USERPWD, $options['auth_name'] . ':' . $options['auth_pass']);
}
if (!empty($options['post']))
{
curl_setopt($s, CURLOPT_POST, true);
curl_setopt($s, CURLOPT_POSTFIELDS, $options['post']);
//curl_setopt($s, CURLOPT_POSTFIELDS, array('username' => 'aeon', 'password' => '111111'));
}
if ($options['include_header'])
{
curl_setopt($s, CURLOPT_HEADER, true);
}
if ($options['no_body'])
{
curl_setopt($s, CURLOPT_NOBODY, true);
}
if ($options['session'])
{
curl_setopt($s, CURLOPT_COOKIESESSION, true);
curl_setopt($s, CURLOPT_COOKIE, $options['session']);
}
curl_setopt($s, CURLOPT_USERAGENT, $options['useragent']);
curl_setopt($s, CURLOPT_REFERER, $options['referer']);
$res = curl_exec($s);
$status = curl_getinfo($s, CURLINFO_HTTP_CODE);
curl_close($s);
return $res;
}

③ PHP curl採集防盜鏈網站亂碼問題求助

你是用curl自己寫的對吧,你獲取回來的字元串你自己輸出看看,如果亂碼對吧,你是否檢查過瀏覽器的編碼呢?是不是都是utf-8?有時候瀏覽器也會識別錯誤,先找到什麼編碼顯示是真確的,然後再進一步找對策,現在你這樣轉來轉去,又明知道是同一個編碼,這樣做是白費功夫的。所以以後你可以去後盾人看看,我經常在那裡學習,你可以陪我學習哦

④ php 實現網路爬蟲

  1. pcntl_fork或者swoole_process實現多進程並發。按照每個網頁抓取耗時500ms,開200個進程,可以實現每秒400個頁面的抓取。

  2. curl實現頁面抓取,設置cookie可以實現模擬登錄

  3. simple_html_dom 實現頁面的解析和DOM處理

  4. 如果想要模擬瀏覽器,可以使用casperJS。用swoole擴展封裝一個服務介面給PHP層調用

在這里有一套爬蟲系統就是基於上述技術方案實現的,每天會抓取幾千萬個頁面。

⑤ php curl get 下載遠程zip文件保存在本地例子

<?php

if($_POST['submit']){
$url=$_POST['url']; //取得提交過來的地址http://hu60.cn/wap/0wap/addown.php/fetion_sms.zip
$url=urldecode($url);
$fname=basename("$url"); //返迴路徑中的文件名部分 fetion_sms.zip
$str_name=pathinfo($fname); //以數組的形式返迴文件路徑的信息
$extname=strtolower($str_name['extension']); //把擴展名轉換成小寫
//$uptypes=explode(",",$forum_upload); //取得可以上傳的文件格式
//$size=getFileSize($url);

$time=date("Ymd",time());

$upload_dir="./upload/";//上傳的路徑
$file_name=$time.rand(1000,9999).'.'.$fname;
$dir=$upload_dir.$file_name;//創建上傳目錄

//判斷目錄是否存在 不存在則創建
if(!file_exists($upload_dir)){
mkdir($upload_dir,0777,true);
}

$contents=curl_download($url,$dir);

if($contents){
echo "下載成功";
}else{
echo "下載失敗";
}

}

function curl_download($url, $dir) {
$ch = curl_init($url);
$fp = fopen($dir, "wb");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
$res=curl_exec($ch);
curl_close($ch);
fclose($fp);
return $res;
}

?>
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>遠程下載文件</title>
<form name="upform" method="post" action="" enctype='multipart/form-data'>
<input name='url' type='text' size='20'/>
<input type='submit' name='submit' value='遠程下載'/>
</form>
</body>
</html>

⑥ 如何 用php抓取google關鍵詞排名

1.說下思路,利用PHP的curl函數儲存cookie,google搜索頁面是無法用file_get_connents打開的,必須要完全模擬瀏覽器才行,網路就不同了,直接用file_get_conntens抓取頁面,然後用正則處理下就行了。
2.[code]<?php
header("Content-Type:text/html;charset=utf-8");

functionggsearch($url_s,$keyword,$page=1){
$enKeyword=urlencode($keyword);

$rsState=false;

$page_num=($page-1)*10;

if($page<=10){
$interface="eth0:".rand(1,4);//避免GG封IP
$cookie_file=dirname(__FILE__)."/temp/google.txt";//存儲cookie值
$url="http://www.google.com/search?q=$enKeyword&hl=en&prmd=imvns&ei=JPnJTvLFI8HlggeXwbRl&start=$page_num&sa=N";
$ch=curl_init();

curl_setopt($ch,CURLOPT_URL,$url);

//curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']);//獲取瀏覽器類型
curl_setopt($ch,CURLOPT_USERAGENT,"Mozilla/5.0(Windows;U;WindowsNT6.1;en-US;rv:1.9.1.2)Gecko/20090729Firefox/3.5.2GTB5");
curl_setopt($ch,CURLOPT_INTERFACE,"$interface");//指定訪問IP地址
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);

curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie_file);

$contents=curl_exec($ch);

curl_close($ch);

$match="!<div\s*id=\"search\">(.*)</div>\s+<\!--z-->!";
preg_match_all("$match","$contents",$line);
while(list($k,$v)=each($line[0])){
preg_match_all("!<h3\s+class=\"r\"><a[^>]+>(.*?)</a>!",$v,$title);
$num=count($title[1]);
for($i=0;$i<$num;$i++){
if(strstr($title[0][$i],$url_s)){
$rsState=true;
$j=$i+1;
$sum=$j+(($page)*10-10);
//echo$contents;
echo"關鍵字".$keyword."<br>"."排名:".'<fontcolor="red"size="20"style="">'.$sum.'</font>'."####"."第".'<fontcolor="#00FFFF"size="18"style="">'.$page.'</font>'."頁"."第".'<fontcolor="#8000FF"size="15"style="">'.$j.'</font>'."名".$title[0][$i]."<br>";
echo"<ahref='".$url."'>"."點擊搜索結果"."</a>"."<br>";
echo"<hr>";
break;
}
}
}
unset($contents);
if($rsState===false){
ggsearch($url_s,$keyword,++$page);//找不到搜索頁面的繼續往下搜索

}
}else{

echo'關鍵字'.$keyword.'10頁之內沒有該網站排名'.'<br>';
echo"<hr>";
}
}
if(!empty($_POST['submit'])){

$time=explode('',microtime());
$start=$time[0]+$time[1];
$more_key=trim($_POST['textarea']);
$url_s=trim($_POST['url']);
if(!empty($more_key)&&!empty($url_s)){
/*判斷輸入字元的規律*/
if(strstr($more_key,"\n")){
$exkey=explode("\n",$more_key);
}
if(strstr($more_key,"|")){
$exkey=explode("|",$more_key);
}
if(!strstr($more_key,"\n")&&!strstr($more_key,"|")){
$exkey=array($more_key);
}
/*判斷是否有www或者http://之類的東西*/
if(count(explode('.',$url_s))<=2){

$url=ltrim($url_s,'http://www');
$url='www.'.$url_s;
}
foreach($exkeyas$keyword){
//$keyword;
ggsearch($url_s,$keyword);
}
$endtime=explode('',microtime());

$end=$endtime[0]+$endtime[1];

echo'<hr>';
echo'程序運行時間:';
echo$end-$start;
//die();
}
}
?>
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title>抓取排名</title>

</head>

<body>
<formaction=""method="post">

<span>關鍵字:</span><textareaname="textarea"rows="20"cols="40"wrap="off">
格式例如:keyword1|keyword2|keyword3
或者:keyword1
keyword2
keyword3
</textarea>

<span>url地址:</span><inputtype="text"name="url">

<inputtype="submit"name="submit"value="搜索">

</form>
</body>

閱讀全文

與phpcurlutf8相關的資料

熱點內容
批處理編譯VS代碼 瀏覽:889
uchar哪個編譯器 瀏覽:27
initializejava 瀏覽:707
單片機的系統組成 瀏覽:610
中國天河二號演算法 瀏覽:647
程序員是怎麼瘋的 瀏覽:598
程序員的貓有幾條命 瀏覽:832
安卓如何把圖片傳到電腦上 瀏覽:895
到去哪兒旅行app怎麼買票 瀏覽:444
工商銀行app房貸還款在哪裡看 瀏覽:761
最新民生通訊app從哪裡下載 瀏覽:378
如何在發簡訊時給自己手機號加密 瀏覽:773
擴展單片機ram定址方式是什麼 瀏覽:318
phpide是什麼 瀏覽:752
單片機相關軟體 瀏覽:818
eclipse如何編譯c11 瀏覽:286
加密游戲app 瀏覽:73
vs2010編譯嵌套太深 瀏覽:982
程序員面試注意事項 瀏覽:742
scratch編譯為h5 瀏覽:210