phpcurlexec返回值,phpcurl詳解

本文目錄一覽:

PHP中的curl_exec

curl_exec

(PHP 4 = 4.0.2, PHP 5) curl_exec — 執行一個cURL會話

可以參考官方網站範例:

你要用CURL,就跟Session一樣,要先初始化 curl_init(),不然PHP部會知道該怎麼運作。初始化完成之後就要開始設定參數,就像是要不要顯示出來。當你參數設定完畢,就要開始執行這個CURL。最後就要關閉這個CURL。這就算是一個簡單的CURL運用,當然還有更多變化。

實際例子:

?php

// 創建一個cURL資源

$ch = curl_init();

// 設置URL和相應的選項

curl_setopt($ch, CURLOPT_URL, “

);

curl_setopt($ch, CURLOPT_HEADER, 0);

// 抓取URL並把它傳遞給瀏覽器

curl_exec($ch);

// 關閉cURL資源,並且釋放系統資源

curl_close($ch);

?

如使用mysql一樣,首先,我們必須先建立一個「curl」的連線,也因此,必須使用到 curl_init() 這個函式。而為了怕建立連線忘了關閉。因此,必須先寫好關閉的函式,curl_close($ch)。

不過大部分HTML標籤都可以抓下來,並且顯示,可是有部分可能與資料加密性或是轉址的部分,就無法正常顯示。

/ 建立CURL連線

$ch = curl_init();

// 設定擷取的URL網址

curl_setopt($ch, CURLOPT_URL, “

);

curl_setopt($ch, CURLOPT_HEADER, false);

//將curl_exec()獲取的訊息以文件流的形式返回,而不是直接輸出。

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

// 執行

$temp=curl_exec($ch);

// 關閉CURL連線

curl_close($ch)

加上curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);之後,他會將curl_exec()獲取的訊息以文件流的形式返回傳給$temp,而不是直接輸出。如果要顯示出畫面的話就加上 echo $temp;就可以了。

下面先分享一個比較常用的,傳遞參數的部分。

簡易的使用語法(GET):

// 建立CURL連線

$ch = curl_init();

// 設定擷取的URL網址

curl_setopt($ch, CURLOPT_URL, “

);

curl_setopt($ch, CURLOPT_HEADER, false);

//將curl_exec()獲取的訊息以文件流的形式返回,而不是直接輸出。

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

// 執行

$temp=curl_exec($ch);

// 關閉CURL連線

curl_close($ch)

Get參數可以直接在網址傳遞例如網址後面加的?SomeVar=test,但是一旦資料量很大,用POST送還是比較適合。

簡易的使用語法(POST):

// 建立CURL連線

$ch = curl_init();

// 設定擷取的URL網址

curl_setopt($ch, CURLOPT_URL, “

);

curl_setopt($ch, CURLOPT_HEADER, false);

//將curl_exec()獲取的訊息以文件流的形式返回,而不是直接輸出。

curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);

//設定要傳的 變數A=值A  變數B=值B (中間要用符號串接)

$PostData = “a=abcb=def”;

//設定CURLOPT_POST 為 1或true,表示要用POST方式傳遞

curl_setopt($ch, CURLOPT_POST, 1); 

//CURLOPT_POSTFIELDS 後面則是要傳接的POST資料。

curl_setopt($ch, CURLOPT_POSTFIELDS, $PostData);

// 執行

$temp=curl_exec($ch);

// 關閉CURL連線

curl_close($ch)

以上的傳遞方式在某些狀況下很好用,譬如說,沒有設計完整的會員申請系統,就可以利用上面這些程式碼,做一個自動註冊申請機

在 php curl返回

給你個我寫的curl方法。

/**

 * curl模擬提交

 * @param string $url 網址

 * @param array/string $opt 提交參數

 * @param string $header 取回的頭信息

 * @param string $redirect 是否重定向

 * @param boolean $ssl 驗證https證書

 * @return [type] 返回信息

 */

function curl($url, $opt=’GET’, $header=null, $redirect=true, $ssl=false){

//初始化

$ch = curl_init($url);

//配置設置

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, $ssl);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, $ssl);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $redirect);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); #返回結果

curl_setopt($ch, CURLOPT_HEADER, true); #顯示協議頭

if(is_array($opt)){

//轉小寫

$opt = array_change_key_case($opt, CASE_LOWER);

//POST

if(isset($opt[‘type’])  strtoupper($opt[‘type’])==’POST’){

curl_setopt($ch, CURLOPT_POST, true);

curl_setopt($ch, CURLOPT_POSTFIELDS, (isset($opt[‘data’]) ? $opt[‘data’] : ”));

}

//User-Agent

if(array_key_exists(‘ua’, $opt))

curl_setopt($ch, CURLOPT_USERAGENT, $opt[‘ua’]);

//Header

if(array_key_exists(‘header’, $opt)){

curl_setopt($ch, CURLOPT_HTTPHEADER, (array)$opt[‘header’]);

}

//Cookie

if(array_key_exists(‘cookie’, $opt))

curl_setopt($ch, CURLOPT_COOKIE, $opt[‘cookie’]);

//Referer

if(array_key_exists(‘referer’, $opt))

curl_setopt($ch, CURLOPT_REFERER, $opt[‘referer’]);

}else{

//僅POST

if(strtoupper((string)$opt) == ‘POST’)

curl_setopt($ch, CURLOPT_POST, true);

}

$result = curl_exec($ch);

if(curl_errno($ch)){

$result = curl_error($ch);

}else{

//獲取頭長度

$length = curl_getinfo($ch, CURLINFO_HEADER_SIZE);

//取出頭信息

$header = substr($result, 0, $length);

//去掉頭信息

$result = substr($result, $length);

}

//釋放

curl_close($ch);

return $result;

}

php 中 怎麼讓curl_exec 以數組形式返回

可以將他返回的內容賦值給一個

變量

。只需再

前面

加上,curl_setopt($ch,CUROPT_RETURNTRANSFER,1);就可以將返回結果賦值給變量了。比如,$r=curl_exec($ch);這時返回的結果全部包含再$r中,想

什麼時候

輸出什麼時候輸出,如果不準備要他的結果,那麼就將前面的1換成0

php curl_exec無法返回結果

你要顯示是不是需要這個參數,你試試

// 設置curl 參數,要求結果保存到變量中還是輸出到屏幕上,false直接輸出到屏幕上。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$return_data = curl_exec($ch);

curl_close($ch);

var_dump($return_data);

php 中 怎麼讓curl_exec 以數組形式返回

可以先看看PHP中的 curl_exec函數的說明

(PHP 4 = 4.0.2, PHP 5)

curl_exec — 執行一個cURL會話

說明

mixed curl_exec ( resource $ch )

執行給定的cURL會話。

這個函數應該在初始化一個cURL會話並且全部的選項都被設置後被調用。

參數

ch

由 curl_init() 返回的 cURL 句柄。

返回值

成功時返回 TRUE, 或者在失敗時返回 FALSE。 然而,如果 CURLOPT_RETURNTRANSFER選項被設置,函數執行成功時會返回執行的結果,失敗時返回 FALSE 。

我前兩天剛好用到過的兩種情況

//從返回結果中獲取指定的值

$res=curl_exec($ch);

$pa = ‘%ul class=”ul1″li本站主數據:(.*?)/li%si’;

preg_match($pa,$res,$r);

return  $r[1];

//第二種 的返回結果是以json形式。

$res=json_decode(curl_exec($ch),true);

print_r($res);

請教關於curl_exec返回值的問題~~~ – PHP進階討論

[php]$curlObj = curl_init();curl_setopt($curlObj, CURLOPT_URL, $url); // 設置訪問的urlcurl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1); //curl_exec將結果返回,而不是執行$result = curl_exec($curlObj);[/php]

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/240063.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:20
下一篇 2024-12-12 12:20

相關推薦

  • Python無參無返回值函數示例

    本文將以Python語言為中心,介紹無參無返回值函數的基本概念和用法。無參無返回值函數是指不需要傳遞參數,也不需要返回值的函數,主要用於執行特定的任務或操作。下面,我們將從以下幾個…

    編程 2025-04-27
  • Python中return返回值返回給誰?

    對於python開發人員來說,return語句是必不可少的一部分。通過return語句,我們可以把函數執行的結果返回給調用者。那麼return返回值返回給誰呢?在本文中,我們將從多…

    編程 2025-04-27
  • Linux sync詳解

    一、sync概述 sync是Linux中一個非常重要的命令,它可以將文件系統緩存中的內容,強制寫入磁盤中。在執行sync之前,所有的文件系統更新將不會立即寫入磁盤,而是先緩存在內存…

    編程 2025-04-25
  • 神經網絡代碼詳解

    神經網絡作為一種人工智能技術,被廣泛應用於語音識別、圖像識別、自然語言處理等領域。而神經網絡的模型編寫,離不開代碼。本文將從多個方面詳細闡述神經網絡模型編寫的代碼技術。 一、神經網…

    編程 2025-04-25
  • nginx與apache應用開發詳解

    一、概述 nginx和apache都是常見的web服務器。nginx是一個高性能的反向代理web服務器,將負載均衡和緩存集成在了一起,可以動靜分離。apache是一個可擴展的web…

    編程 2025-04-25
  • MPU6050工作原理詳解

    一、什麼是MPU6050 MPU6050是一種六軸慣性傳感器,能夠同時測量加速度和角速度。它由三個傳感器組成:一個三軸加速度計和一個三軸陀螺儀。這個組合提供了非常精細的姿態解算,其…

    編程 2025-04-25
  • Python輸入輸出詳解

    一、文件讀寫 Python中文件的讀寫操作是必不可少的基本技能之一。讀寫文件分別使用open()函數中的’r’和’w’參數,讀取文件…

    編程 2025-04-25
  • 詳解eclipse設置

    一、安裝與基礎設置 1、下載eclipse並進行安裝。 2、打開eclipse,選擇對應的工作空間路徑。 File -> Switch Workspace -> [選擇…

    編程 2025-04-25
  • Linux修改文件名命令詳解

    在Linux系統中,修改文件名是一個很常見的操作。Linux提供了多種方式來修改文件名,這篇文章將介紹Linux修改文件名的詳細操作。 一、mv命令 mv命令是Linux下的常用命…

    編程 2025-04-25
  • git config user.name的詳解

    一、為什麼要使用git config user.name? git是一個非常流行的分布式版本控制系統,很多程序員都會用到它。在使用git commit提交代碼時,需要記錄commi…

    編程 2025-04-25

發表回復

登錄後才能評論