當前位置:首頁 » 編程語言 » phpcurlexec

phpcurlexec

發布時間: 2022-04-13 03:40:44

php curl_exec無法返回結果

你要顯示是不是需要這個參數,你試試
// 設置curl 參數,要求結果保存到變數中還是輸出到屏幕上,false直接輸出到屏幕上。
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$return_data = curl_exec($ch);
curl_close($ch);
var_mp($return_data);

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

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


(PHP 4 >= 4.0.2, PHP 5)

curl_exec—執行一個cURL會話

說明

mixedcurl_exec(resource$ch)

執行給定的cURL會話。

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

參數


ch

由curl_init()返回的 cURL 句柄。

返回值

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



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

//從返回結果中獲取指定的值
$res=curl_exec($ch);
$pa='%<ulclass="ul1"><li>本站主數據:(.*?)</li>%si';
preg_match($pa,$res,$r);
return$r[1];
//第二種的返回結果是以json形式。
$res=json_decode(curl_exec($ch),true);
print_r($res);

Ⅲ php 中curl_exec如何返回數組

返回json,轉換成array就可以了。

Ⅳ 在php中,curl_exec響應速度非常慢

  1. 最簡便的方法是用ip地址代替域名進行測試,如果有改進就是說明網路域名伺服器配置有問題,多換幾個DNS來嘗試。

  2. php 有個非常非常重要的函數叫做curl_getinfo ,請查一下這個函數的手冊說明,能夠有效地把每一步操作所消耗的時間都分析出來,幫助你鎖定瓶頸,縮小問題范圍

  3. 永遠都不要用windows當伺服器。LAMP 就是指的 Linux + Apache + Mysql + PHP,黃金組合,非常穩定非常可靠。

Ⅳ 請問下php中如何處理這個curl_exec()的結果

可以使用 empty() 函數,
if ( empty( $data ) ) {
// 為空
} else {
// 不為空
}

如果是其他某種不明原因導致報錯,可以用異常機制,
try {
if ( !$data ) { // 這里的條件也可以用其他
throw new Exception ( 'error' );
} else {
echo ' success ';
}
} catch (Exception $e) {
echo ' error ';
}

Ⅵ php如何使用CURL復用連接

HTTP1.0與HTTP1.1的一個很大的差別是HTTP1.1支持長連接。現實中有很多這個場景,就是請求了一個頁面,然後這個頁面的其他內容,例如CSS文件,JS文件都要從同一個服務(相同伺服器,相同埠)上面獲取。這些向相同伺服器的請求如果能夠復用連接,是很有利於提供網路性能。
總的來說,復用HTTP連接有兩個好處:
1.節省系統埠資源(每一次連接都要使用埠,埠的資源是有限的)
2.節省創建socket連接的時間。

下面講講在PHP下面,如何使用CURL來復用連接:
curl是在一個handle裡面復用連接的,所以這樣就可以復用連接了:
$ch=curl_init();
$ret=curl_exec($ch);
......
$ret2=curl_exec($ch);
....
curl_close($ch);
在初始化跟關閉$ch資源時即可復用連接。

我這里寫了兩個函數,可以支持GET跟POST的請求,大家感興趣可以看看。

functioncurl_get($url,$timeout=5){
global$g_handle;
if(empty($g_handle))$ch=curl_init();

$options=array(
CURLOPT_URL=>$url,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_FRESH_CONNECT=>false,
CURLOPT_FORBID_REUSE=>false,
CURLOPT_TIMEOUT=>$timeout
);
curl_setopt_array($g_handle,$options);

$ret=curl_exec($g_handle);
return$ret;
}


//可以支持POST數據,$post是一個數組,$timeout是超時時間。
functioncurl_post($url,$post=array(),$timeout=10){
global$g_handle;
if(empty($g_handle))$g_handle=curl_init();

$options=array(
CURLOPT_URL=>$url,
CURLOPT_POST=>true,
CURLOPT_RETURNTRANSFER=>true,
CURLOPT_FRESH_CONNECT=>false,
CURLOPT_FORBID_REUSE=>false,
CURLOPT_TIMEOUT=>$timeout,
CURLOPT_POSTFIELDS=>http_build_query($post)
);
if(empty($post))$options[CURLOPT_POST]=false;

curl_setopt_array($g_handle,$options);

$ret=curl_exec($g_handle);
return$ret;
}

Ⅶ PHP中的curl_exec

curl_exec

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

可以參考官方網站範例:http://www.php.net/manual/en/function.curl-exec.php

你要用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=abc&b=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_exec問題

Header("Content-type: application/octet-stream");//文件類型

//提示瀏覽器將要下載文件
Header("Content-Disposition: attachment; filename=隨便起個文件名");//提示給用戶的文件名
echo $content; 輸出

//試一下吧

Ⅸ php curl_exec,伺服器上開啟了這個功能,但是提示無法載入

提示頁面無法載入不是curl沒有打開,而是代碼中有錯,如果是curl沒有打開的話會報curl_exec這個函數找不到等類似的錯誤,而不是無法載入的500錯誤。
你看看狀態碼,如果是500找找代碼哪裡有錯。

熱點內容
美團商家新增的技術伺服器是什麼 發布:2024-04-27 12:12:35 瀏覽:343
得到腳本 發布:2024-04-27 12:06:25 瀏覽:936
三星手機鎖屏忘記密碼了怎麼辦 發布:2024-04-27 12:05:41 瀏覽:519
python基礎語言 發布:2024-04-27 11:54:40 瀏覽:84
ioshttp伺服器搭建 發布:2024-04-27 11:40:26 瀏覽:913
忘記密碼如何強制刷機vivo 發布:2024-04-27 11:28:40 瀏覽:385
c語言讀取指定行 發布:2024-04-27 11:28:30 瀏覽:52
c語言中a10什麼意思 發布:2024-04-27 10:45:43 瀏覽:58
物聯網中ftp是什麼意思 發布:2024-04-27 10:41:17 瀏覽:986
銀行密碼保護在哪裡 發布:2024-04-27 10:25:23 瀏覽:189