中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php使用curl的方法介紹

發布時間:2020-04-17 17:30:57 來源:億速云 閱讀:331 作者:小新 欄目:編程語言

這篇文章主要介紹了php使用curl的方法,具有一定借鑒價值,需要的朋友可以參考下。下面就和我一起來看看php使用curl的方法吧。

php使用curl的方法介紹

一、curl簡介

百度百科給的解釋是:數據傳輸神器。那它神器在什么地方那,通過查找資料得出curl可以使用url的語法模擬瀏覽器來傳輸數據,因為是模擬瀏覽器所以它支持多種的網絡協議。目前支持http、https、ftp、gopher、telnet、dict、file和ldap協議。libcurl同時也支持HTTPS認證、HTTP POST、HTTP PUT、 FTP 上傳(這個也能通過PHP的FTP擴展完成)、HTTP 基于表單的上傳、代理、cookies和用戶名+密碼的認證。

php中使用最多的是通過curl來模擬get和post請求。

二、用法

(1)、要想使用curl,第一步先要在php中開啟curl,在php配置文件php.ini中找到extension=php_curl.dll,把前面的‘;’去掉。重啟服務器。在php代碼中用phpinfo()打印,發現圖中curl說明開啟成功。

(2)、使用curl完成簡單的請求主要分為四大步:

初始化,創建一個新的curl資源。

設置url和相應的選項

抓取url并把他傳遞給瀏覽器

關閉curl資源。把資源釋放。

eg:

<?php
// 創建一個新cURL資源
$ch = curl_init();

// 設置URL和相應的選項
$options = array(CURLOPT_URL => 'http://www.example.com/',
                 CURLOPT_HEADER => false
                );

curl_setopt_array($ch, $options);

// 抓取URL并把它傳遞給瀏覽器
curl_exec($ch);

// 關閉cURL資源,并且釋放系統資源
curl_close($ch);
?>

三、curl函數

  • curl_close — 關閉一個cURL會話

  • curl_copy_handle — 復制一個cURL句柄和它的所有選項

  • curl_errno — 返回最后一次的錯誤號

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

  • curl_escape — 使用 URL 編碼給定的字符串

  • curl_exec — 執行一個cURL會話

  • curl_file_create — 創建一個 CURLFile 對象

  • curl_getinfo — 獲取一個cURL連接資源句柄的信息

  • curl_init — 初始化一個cURL會話

  • curl_multi_add_handle — 向curl批處理會話中添加單獨的curl句柄

  • curl_multi_close — 關閉一組cURL句柄

  • curl_multi_exec — 運行當前 cURL 句柄的子連接

  • curl_multi_getcontent — 如果設置了CURLOPT_RETURNTRANSFER,則返回獲取的輸出的文本流

  • curl_multi_info_read — 獲取當前解析的cURL的相關傳輸信息

  • curl_multi_init — 返回一個新cURL批處理句柄

  • curl_multi_remove_handle — 移除curl批處理句柄資源中的某個句柄資源

  • curl_multi_select — 等待所有cURL批處理中的活動連接

  • curl_multi_setopt — 為 cURL 并行處理設置一個選項

  • curl_multi_strerror — Return string describing error code

  • curl_pause — Pause and unpause a connection

  • curl_reset — 重置一個 libcurl 會話句柄的所有的選項

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

  • curl_setopt — 設置一個cURL傳輸選項

  • curl_share_close — Close a cURL share handle

  • curl_share_init — Initialize a cURL share handle

  • curl_share_setopt — Set an option for a cURL share handle.

  • curl_strerror — Return string describing the given error code

  • curl_unescape — 解碼給定的 URL 編碼的字符串

  • curl_version — 獲取cURL版本信息

四、實例

1、使用curl,get獲得數據

<?php
$url = 'http://www.example.com';
//初始化一個 cURL 對象 
$ch  = curl_init();
//設置你需要抓取的URL
curl_setopt($ch, CURLOPT_URL, $url);
// 設置cURL 參數,要求結果保存到字符串中還是輸出到屏幕上。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//是否獲得跳轉后的頁面
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>

2、使用curl,post獲得數據

<?php
function curl_post($url, $arr_data){
   $post_data = http_build_query($url_data);
   $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch,  CURLOPT_POSTFLELDS, $post_data);
    $data = curl_exec($ch);
    curl_close($ch);
    echo $data;
}
$arr_post = array(
    'name'=>'test_name',
    'age'   => 1
);
curl_post("http://www.explame.com/", $arr_post);
?>

3、使用代理抓取頁面

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

<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://google.com"); 
curl_setopt($ch, CURLOPT_HEADER, false);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
//是否通過http代理來傳輸
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, TRUE);
curl_setopt($ch, CURLOPT_PROXY, 125.21.23.6:8080);  
//url_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');如果要密碼的話,加上這個  
$result=curl_exec($ch); 
curl_close($ch);
?>

4、繼續保持本站session的調用

在實現用戶同步登錄的情況下需要共享session,如果要繼續保持本站的session,那么要把sessionid放到http請求中

<?php
$session_str = session_name().'='.session_id().'; path=/; domain=.explame.com';
session_write_close(); //將數據寫入文件并且結束session
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, $session_str); 
$ret = curl_exec($ch);
curl_close($ch);
?>

關于php使用curl的方法介紹就分享到這里了,當然并不止以上和大家分析的辦法,不過小編可以保證其準確性是絕對沒問題的。希望以上內容可以對大家有一定的參考價值,可以學以致用。如果喜歡本篇文章,不妨把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

木兰县| 措勤县| 绵竹市| 玉山县| 贞丰县| 宝鸡市| 富民县| 永川市| 益阳市| 公安县| 乌兰浩特市| 凤冈县| 柘荣县| 吴旗县| 东海县| 广汉市| 政和县| 台东市| 梨树县| 会理县| 呼玛县| 象州县| 商南县| 博客| 大庆市| 扶沟县| 富民县| 乌恰县| 沙河市| 吉林省| 孙吴县| 阜新市| 正定县| 鄂托克旗| 昌图县| 龙海市| 阿勒泰市| 吉隆县| 鄄城县| 盱眙县| 平凉市|