基於PHP的cURL快速入門

2020-12-13 站長之家
首頁

 > 

語言

 > 

關鍵詞

 > 

php最新資訊

 > 

正文

基於PHP的cURL快速入門

cURL 是一個利用URL語法規定來傳輸文件和數據的工具,支持很多協議,如HTTP、FTP、TELNET等。最爽的是,PHP也支持 cURL 庫。本文將介紹 cURL 的一些高級特性,以及在PHP中如何運用它。

為什麼要用 cURL?

是的,我們可以通過其他辦法獲取網頁內容。大多數時候,我因為想偷懶,都直接用簡單的PHP函數:

以下為引用的內容:

$content = file_get_contents("https://www.nettuts.com");
// or
$lines = file("https://www.nettuts.com");
// or
readfile(https://www.nettuts.com);

不過,這種做法缺乏靈活性和有效的錯誤處理。而且,你也不能用它完成一些高難度任務——比如處理coockies、驗證、表單提交、文件上傳等等。

引用:
cURL 是一種功能強大的庫,支持很多不同的協議、選項,能提供 URL 請求相關的各種細節信息。

基本結構

在學習更為複雜的功能之前,先來看一下在PHP中建立cURL請求的基本步驟:

  1. 初始化
  2. 設置變量
  3. 執行並獲取結果
  4. 釋放cURL句柄

以下為引用的內容:

// 1. 初始化
$ch = curl_init();
// 2. 設置選項,包括URL
curl_setopt($ch, CURLOPT_URL, "https://www.nettuts.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// 3. 執行並獲取HTML文檔內容
$output = curl_exec($ch);
// 4. 釋放curl句柄
curl_close($ch);

第二步(也就是 curl_setopt() )最為重要,一切玄妙均在此。有一長串cURL參數可供設置,它們能指定URL請求的各個細節。要一次性全部看完並理解可能比較困難,所以今天我們只試一下那些更常用也更有用的選項。

檢查錯誤

你可以加一段檢查錯誤的語句(雖然這並不是必需的):

以下為引用的內容:

// ...
$output = curl_exec($ch);
if ($output === FALSE) {
    echo "cURL Error: " . curl_error($ch);
}
// ...

請注意,比較的時候我們用的是「=== FALSE」,而非「== FALSE」。因為我們得區分 空輸出 和 布爾值FALSE,後者才是真正的錯誤。

相關焦點

  • PHP 使用 CURL 詳解
    php $ch = curl_init();   curl_setopt($ch,CURLOPT_URL,"http://www.devdo.net"); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); $output = curl_exec($ch); if($output
  • [基礎] PHP與Curl採用的GET,POST,JSON方式請求API
    或許你早就知道如何用,或許對你有些許幫助,可是最後還是感謝你的關注鞏固php基礎,分享給你視頻教程【PHP7.x入門到進階,初學者直接獲取!】,公眾號裡回覆:20200202   免費領取提取碼!    curl_setopt($curl,CURLOPT_HTTPAUTH,CURLAUTH_BASIC);  //設置http驗證方法    curl_setopt($curl, CURLOPT_TIMEOUT,30);    curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);  //設置curl_exec獲取的信息的返回方式
  • PHP使用Curl實現模擬登錄及抓取數據功能示例
    關注我喲小編 隔天推送php教程,php技巧,php視頻教程,MySQL,筆試題等諸多優質內容,最接地氣、重服務的本地微信平臺!關注我們妥妥沒錯!/pic.cookie";  $ch = curl_init();curl_setopt($ch, CURLOPT_URL, $login_url);curl_setopt($ch, CURLOPT_HEADER, 0);curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);curl_setopt(
  • 在PHP中使用CURL實現GET和POST請求的方法
    本文將介紹curl的一些高級特性,以及在PHP中如何運用它。2.基本結構在學習更為複雜的功能之前,先來看一下在PHP中建立CURL請求的基本步驟:(1)初始化 curl_init()(2)設置變量 curl_setopt() //最為重要,一切玄妙均在此。有一長串curl參數可供設置,它們能指定URL請求的各個細節。
  • php語言入門教程(PHP編程學習路線圖)
    php語言入門應該從哪裡開始學起呢?是先學html還是php?還是直接學習PHP框架?
  • 使用curl技術實現數據採集
    前提:比如在php.ini中,開啟curl模塊:基本步驟:l 1、初始化CURL請求:$link = curl_init([網址url]);l 2、設置請求選項:curl_setopt($link, 選項名, 選項值)。
  • PHP:6種GET和POST請求發送方法
    php$url='http://www.shiyanlou.com/';$html = file_get_contents($url);echo $html;?feof($fp)) { $result .= fgets($fp, 1024); } fclose($fp); return $result;}6、使用curl庫,使用curl庫之前,可能需要查看一下php.ini是否已經打開了curl擴展:$ch = curl_init();$timeout = 5;curl_setopt
  • 微信PHP開發框架 LaneWeChat 登陸 Composer
    可以使用Composer快速下載最新版本的LaneWeChat。 使用方法:composer require lixuancn/lanewechat 或php /usr/local/composer/bin/composer.phar require lixuancn/lanewechat 代碼包地址:https://packagist.org/packages
  • cUrl命令行工具下載使用心得及常用參數解釋
    主要的區別在於wget默認是保存到文件,而curl將輸出定向到命令行上。這使得curl能非常方便的查看站點的內容。進入下載頁,選擇需要的版本(適合自身作業系統): https://curl.haxx.se/download.html2. 根據自己的作業系統位數和是否需要SSL下載相應的版本。我這裡這裡下載curl-7.59.0-win32-mingw.zip,下載完成之後解壓到需要使用curl命令的目錄。這裡為了方便我先直接解壓到當前目錄。
  • 3分鐘短文|Linux 使用curl發起post請求的4個常用方式
    下面的示例說明如何向具有「name」和「email」欄位的表單發出POST請求:curl -X POST -F 'name=Jason' -F 'email=jason@example.com' https://example.com/contact.php使用該-F選項時,curl使用 Content-Type
  • curl 的用法指南
    內容主要翻譯自《curl cookbook》。為了節約篇幅,下面的例子不包括運行時的輸出,初學者可以先看我以前寫的《curl 初學者教程》。不帶有任何參數時,curl 就是發出 GET 請求。curl 的默認用戶代理字符串是curl/[version]。
  • 基於AWD比賽的蠕蟲webshell(四)
    歷史文章:蠕蟲webshell代碼功能詳情:基於AWD比賽的蠕蟲webshell蠕蟲webshell復活框架:基於AWD比賽的蠕蟲webshell(二)蠕蟲webshell適配msf、前端傳播與反滲透 :基於AWD比賽的蠕蟲webshell(三)蠕蟲webshell代碼混淆先說混淆後的效果,報1級變量函數,但考慮到蠕蟲webshell是要每個php文件都要插入這麼大段代碼
  • InitPHP 框架發布 3.5 正式版
    優化curl類 6. 修復log工具類的日誌寫入文件夾目錄問題,在配置項中新增log日誌全局配置$InitPHP_conf['log_dir'] InitPHP是一款輕量級的php開發框架,採用分層體系架構,適合大中型網站架構。提供豐富的library類庫,以及簡單 的框架擴展機制。InitPHP還提供詳細的開發文檔,可以讓您在使用該框架的時候更加簡單實用。
  • PHP使用curl報錯SSL certificate problem: unable to get local...
    出錯原因錯誤提示:SSL certificate problem: unable to get local issuer certificate是在使用 curl 時出錯,意思是「SSL證書問題:無法獲取本地頒發者證書」。
  • curl 強大的網絡工具
    為了節約篇幅,下面的例子不包括運行時的輸出,初學者可以先看我以前寫的《curl 初學者教程》。不帶有任何參數時,curl 就是發出 GET 請求。1$ curl https://www.example.com上面命令向www.example.com發出 GET 請求,伺服器返回的內容會在命令行輸出。
  • Zend Framework 入門——快速上手
    解壓後,把整個目錄拷貝到一個理想的地方,比如:/php/library/Zend。打開 php.ini 文件,確認包含 Zend 目錄的路徑在 include_path 裡定義了。以上面的配置為例,php.ini 中應有類似下面的條目:include_path = ".
  • (安全篇)PHP 的錯誤機制詳解
    比如curl的CURLOPT_POSTFIELDS使用@FILENAME來上傳文件的方法// Deprecated: curl_setopt(): The usage of the @filename API for file uploading is deprecated.
  • php編程快速入門(建議收藏)
    我學過一年前端和java,剛看php文檔感覺還是挺簡單的,畢竟也用不著深入到框架的地步,會用就行。心累..寫了幾萬字的筆記忘記存儲了,現在又要重寫..細節我就略過了,直接放案例體會吧.PHP 腳本以 <?php 開始,以 ?> 結束:<?php// PHP 代碼?
  • 手把手擼PHP擴展 0x03: 理解PHP生命周期的過程
    修改這幾個函數的內容:PHP_MINIT_FUNCTION(study){ php_printf("MINIT\n"); return SUCCESS;}PHP_MSHUTDOWN_FUNCTION(study){ php_printf("MSHUTDOWN\n"); return SUCCESS;}
  • 微信第三方實現一鍵登錄及獲取用戶信息的方法(PHP版)
    關注我喲小編 隔天推送php教程,php技巧,php視頻教程,MySQL,筆試題等諸多優質內容,最接地氣、重服務的本地微信平臺!關注我們妥妥沒錯!/Card/Common/class_weixin_adv.php');之後填入微信官方給的的appid與secret1$weixin=new class_weixin_adv("appid", "secret");初始化SDK的類,取到code,利用獲取到的code在獲取出openid 看下面代碼注釋!