国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

PHP CURL用法詳解

2024-09-04 11:48:11
字體:
來源:轉載
供稿:網友

PHP CURL的作用對于很多應用來說有很大的用處,下面我來詳細介紹php curl用法詳解,有需要了解的朋友可進入參考。

PHP中的CURL函數庫(Client URL Library Function)

curl_close — 關閉一個curl會話

curl_copy_handle — 拷貝一個curl連接資源的所有內容和參數

curl_errno — 返回一個包含當前會話錯誤信息的數字編號

curl_error — 返回一個包含當前會話錯誤信息的字符串

curl_exec — 執行一個curl會話

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

curl_init — 初始化一個curl會話

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

curl_multi_close — 關閉一個批處理句柄資源

curl_multi_exec — 解析一個curl批處理句柄

curl_multi_getcontent — 返回獲取的輸出的文本流

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

curl_multi_init — 初始化一個curl批處理句柄資源

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

curl_setopt_array — 以數組的形式為一個curl設置會話參數

curl_setopt — 為一個curl設置會話參數

curl_version — 獲取curl相關的版本信息

curl_init()函數的作用初始化一個curl會話,curl_init()函數唯一的一個參數是可選的,表示一個url地址。

curl_exec()函數的作用是執行一個curl會話,唯一的參數是curl_init()函數返回的句柄。

curl_close()函數的作用是關閉一個curl會話,唯一的參數是curl_init()函數返回的句柄。

1. php curl的默認調用方法,get方式訪問url,代碼如下:

  1. $ch = curl_init();  
  2. curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //設置http頭  
  3. curl_setopt($ch, CURLOPT_ENCODING, "gzip" ); //設置為客戶端支持gzip壓縮  
  4. curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //設置連接等待時間  
  5. curl_setopt($ch, CURLOPT_URL, $url );  
  6. curl_exec( $ch );  
  7. if ($error = curl_error($ch) ) {  
  8. //出錯處理  
  9. return -1;  
  10. }  
  11. fclose($fp); 
  12. $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //獲取http返回值  
  13. if$curl_code == 200 ) {  
  14. //正常訪問url  
  15. }  
  16. //異常  

2. 設置http header支持curl訪問lighttpd服務器,Java代碼如下:

$header[]= 'Expect:';$header[]= 'Expect:'; 

3. 設置curl,只獲取http header,不獲取body,Java代碼如下:

  1. curl_setopt($ch, CURLOPT_HEADER, 1);  
  2. curl_setopt($ch, CURLOPT_NOBODY, 1); 
  3. curl_setopt($ch, CURLOPT_HEADER, 1);  
  4. curl_setopt($ch, CURLOPT_NOBODY, 1); 

或者只獲取body,Java代碼如下:

  1. curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body  
  2. curl_setopt($ch, CURLOPT_NOBODY, 0); 
  3. curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body 
  4. curl_setopt($ch, CURLOPT_NOBODY, 0); 

4.訪問虛擬主機,需設置Host,代碼如下

$header[]= 'Host: '.$host; 

5. 使用post, put,delete等REStful方式訪問url,代碼如下:

curl_setopt($ch, CURLOPT_POST,1); put, delete: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); //或者PUT,需要服務器支持這些方法。 

6.保存下載內容為文件,代碼如下:

curl_setopt($ch, CURLOPT_FILE, $fp);

模擬POST請求,代碼如下:

  1. <?PHP  
  2.     $url = 'POST_URL';  
  3.     $fields=array(  
  4.         'a' => 'a',  
  5.         'b'   => 'b',  
  6.     );  
  7.        
  8.     $ch = curl_init();  
  9.     curl_setopt($ch, CURLOPT_URL, $url);  
  10.     curl_setopt($ch, CURLOPT_POST, count($fields));  
  11.     curl_setopt($ch, CURLOPT_POSTFIELDS, $fields);  
  12.     ob_start();  
  13.     curl_exec($ch);  
  14.        
  15.     $result = ob_get_contents();  
  16.        
  17.     ob_end_clean();  
  18.     echo $result;  
  19.     curl_close($ch); 
  20. ?> 

模仿get登錄,代碼如下:

  1. <? 
  2. session_start(); 
  3. $url = 'http://localhost/test/loginAct.php'
  4. $post = 1; 
  5. $returntransfer = 1; 
  6. $port = 80; 
  7. $header = 0; 
  8. $nobody = 0; 
  9. $followlocation = 1; 
  10. $cookie_jar = $_SESSION['cookie_jar']; 
  11. $request = 'userName=huyan&pwd='.sha1(yanyan).'&ac=login'
  12. $ch = curl_init(); 
  13. $options = array(CURLOPT_URL => $url
  14.        CURLOPT_HEADER => $header
  15.        CURLOPT_NOBODY => $nobody
  16.        CURLOPT_PORT => $port
  17.        CURLOPT_POST => $post
  18.        CURLOPT_POSTFIELDS => $request
  19.        CURLOPT_RETURNTRANSFER => $returntransfer
  20.        CURLOPT_FOLLOWLOCATION => $followlocation
  21.        CURLOPT_COOKIEJAR => $cookie_jar
  22.        CURLOPT_COOKIEFILE => $cookie_jar
  23.        CURLOPT_REFERER => $url 
  24.        ); 
  25. curl_setopt_array($ch$options); 
  26. $temp = curl_exec($ch); 
  27. curl_errno($ch); 
  28. curl_close($ch); 
  29. echo $temp
  30. ?> 

注意,如果你的curl不可以使用我們可以參考下面方法來打開

啟php curl函數庫的步驟

1).去掉windows/php.ini 文件里;extension=php_curl.dll前面的; 用 echo phpinfo();查看php.ini的路徑

2).把php5/libeay32.dll,ssleay32.dll復制到系統目錄windows/下

3).重啟apache

配置php支持curl

curl是一個利用URL語法在命令行方式下工作的文件傳輸工具。它支持很多協議:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同樣支持HTTPS認證,HTTP POST方法, HTTP PUT方法, FTP上傳, kerberos認證, HTTP上傳, 代理服務器, cookies, 用戶名/密碼認證, 下載文件斷點續傳, 上載文件斷點續傳, http代理服務器管道( proxy tunneling), 甚至它還支持IPv6, socks5代理服務器, 通過http代理服務器上傳文件到FTP服務器等等,功能十分強大。Windows操作系統下的網絡螞蟻,網際快車(FlashGet)的功能它都可以做到。準確的說,curl支持文件的上傳和下載,所以是一個綜合傳輸工具,但是按照傳統,用戶習慣稱curl為下載工具。

配置方法:

1、拷貝PHP目錄中的libeay32.dll 和 ssleay32.dll 兩個文件到 system32 目錄。

2、修改php.ini:配置好 extension_dir ,去掉 extension = php_curl.dll 前面的分號。

php下擴展php_curl.dll的安裝

已經內置有php_curl.dll,在ext目錄下,此DLL用于支持SSL和zlib,在php.ini中找到有extension=php_curl.dll,去掉前面的注釋.

設置extension_dir=c:phpext, 刷新PHP頁面時報錯, 說找不到模塊php_curl.dll,拷貝php_curl.dll 到windowssystem32,還是同樣的錯.

在網上找了一下,需要將:libeay32.dll, ssleay32.dll, php5ts.dll, php_curl.dll都拷貝到system32目錄下,重啟IIS即可.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 镇沅| 鲁山县| 鹤山市| 和平县| 海丰县| 林西县| 郸城县| 富裕县| 德兴市| 札达县| 龙泉市| 丰顺县| 湖口县| 海丰县| 怀宁县| 丰镇市| 新营市| 同德县| 浦北县| 武汉市| 海兴县| 札达县| 黑河市| 永平县| 方正县| 黄大仙区| 达州市| 沿河| 页游| 新民市| 营山县| 西贡区| 台北市| 高陵县| 竹溪县| 温宿县| 游戏| 巴彦淖尔市| 囊谦县| 军事| 囊谦县|