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

phpexeccurl

發布時間: 2022-05-21 09:57:38

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的幾種用法

總結一下項目中用到curl的幾種方式 1. php curl的默認調用方法,get方式訪問url $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //設置http頭 curl_setopt($ch, CURLOPT_ENCODING, "gzip" ); //設置為客戶端支持gzip壓縮 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //設置連接等待時間 curl_setopt($ch, CURLOPT_URL, $url ); curl_exec( $ch ); if ($error = curl_error($ch) ) {//出錯處理return -1;}fclose($fp); $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //獲取http返回值 if( $curl_code == 200 ) { //正常訪問url}//異常 2. 設置http header支持curl訪問lighttpd伺服器Java代碼$header[]= 'Expect:'; $header[]= 'Expect:'; 3. 設置curl,只獲取http header,不獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); 或者只獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); 4. 訪問虛擬主機,需設置Host $header[]= 'Host: '.$host; 5. 使用post, put, delete等REStful方式訪問urlpost:curl_setopt($ch, CURLOPT_POST, 1 ); put, delete: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); //或者PUT,需要伺服器支持這些方法。6. 保存下載內容為文件

Ⅲ 求指點PHP里的curl_exec問題

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

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

//試一下吧

Ⅳ 請問下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_exec無法返回結果

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

Ⅵ 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如何執行linux的curl指令

curl 不是即時的輸入輸出的命令,php 有運行時間限制, curl 運行會導致 curl 運行時間不夠而被殺掉的。

php 有運行 linux 命令的函數,記得 system() 是一個,之後還有另外一個。注意這兩個命令是可以在 php.ini/php.conf 裡面設置禁止使用的。

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

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

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

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

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

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

Ⅹ 如何在php中獲取curl請求的請求頭信息及相應頭信息

<?php
$url='http://demo.zjmainstay.cn';
$ch=curl_init($url);
curl_setopt($ch,CURLOPT_HEADER,true);//返回頭信息
curl_setopt($ch,CURLOPT_NOBODY,true);//不返回內容
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);//返回數據不直接輸出
$content=curl_exec($ch);//執行並存儲結果
curl_close($ch);
echo$content;

更多關於phpcURL的內容,請參考我的博客《PHPcURL應用》
http://www.zjmainstay.cn/php-curl

熱點內容
python集合運算符 發布:2025-02-14 03:06:18 瀏覽:205
pic編譯軟體 發布:2025-02-14 03:01:04 瀏覽:984
反編譯在編譯 發布:2025-02-14 02:55:36 瀏覽:418
python列印對象 發布:2025-02-14 02:51:20 瀏覽:573
QRM演算法 發布:2025-02-14 02:45:19 瀏覽:266
c語言列印結構體 發布:2025-02-14 02:42:28 瀏覽:141
編譯技術實驗一 發布:2025-02-14 02:28:24 瀏覽:648
編程手機入門 發布:2025-02-14 02:27:40 瀏覽:734
區域網視頻android 發布:2025-02-14 02:23:56 瀏覽:423
麒麟系統如何安裝安卓程序 發布:2025-02-14 02:07:21 瀏覽:399