[樂意黎轉載]PHP Curl 不依賴 CookieJar 獲取 Cookie 的方式
curl 是 php 中非常好的一個工具類,它預設獲取 cookie 的方式是這樣的。
// 將cookie儲存至cookie.txt
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
將 cookie 儲存到一個檔案中其實並不是一種很好的方式,其一,cookie 的儲存與讀取這是兩次 IO 操作,小程度上降低了程式執行效率。其二,cookie 檔案的存放路徑,尤其是當使用 MVC 框架的時候,cookie 檔案儲存在哪個路徑,不太容易處理。
其實,我們可以通過 curl 獲取 URL 的 header 資訊,從 header 中分割出 cookie 部分,再利用正則將 cookie 取出來。
上程式碼:
// 初始化CURL
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
// 獲取頭部資訊
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);
// 解析http資料流
list($header, $body) = explode("\r\n\r\n", $content);
// 解析cookie
preg_match("/set\-cookie:([^\r\n]*)/i" , $header, $matches);
$cookie = $matches[1];
然後接下來需要提交 cookie 時,使用下面的語句提交就可以了。
curl_setopt($ch, CURLOPT_COOKIE, $cookie);
https://muguang.me/php/phpcurl-cookie.html
相關推薦
[樂意黎轉載]PHP Curl 不依賴 CookieJar 獲取 Cookie 的方式
curl 是 php 中非常好的一個工具類,它預設獲取 cookie 的方式是這樣的。 // 將cookie儲存至cookie.txt curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt'); curl_setopt($c
php使用CURL不依賴COOKIEJAR獲取COOKIE的方法
本文例項講述了php使用CURL不依賴COOKIEJAR獲取COOKIE的方法。分享給大家供大家參考。具體分析如下: PHP中CURL類是一個非常牛逼的工具類,具體怎麼牛逼就不囉嗦了。 對於COOKIE,CURL類也有很不錯的支援,但不夠靈活,並未能通過現成的方法以變數的方法獲取到,而以要通過以下方法實現
[樂意黎原創] php 頁面提示 Fatal error: Call to undefined function curl_init()
呼叫到 curl_init()的php頁面提示: Fatal error: Call to undefined function curl_init() in E:\PHPCMS\Cms\www.a
[樂意黎轉載]Centos 7 nginx 服務安裝及配置
前言 nginx 跟 Apache 的作用差不多,都是提供 WEB 服務,但 nginx 相對於 Apache 來說,在效能上有更好的體現,而 Apache 有穩定性方面會比 nginx 好一些,所以要用哪一個,自己喜歡就好。下面就給大家分享下 ngin
[樂意黎轉載]Tomcat 8.0.39 And Tomcat 8.5.8 Fails Handling Requsest
Hi,we are using tomcat 8.0.30 without problems.I have tested upgrade to 8.0.38 today and I got this errorMore env. details JDK 8, tested
[樂意黎原創] php 和 apache 的配置
1. E:\PHPCMS\Apache2.2\conf\httpd.conf 增加 php 設定,大概在130行,#LoadModule vhost_alias_module modules/mod_vhost_alias.so 後面增加 LoadModule php
Asp.Net.Identity認證不依賴Entity Framework實現方式
aps 新建 create exc spn sharp 個數 blank aspnet Asp.Net.Identity為何物請自行搜索,也可轉向此文章http://www.cnblogs.com/shanyou/p/3918178.html 本來微軟已經幫我們將授權、認證
php curl 轉為 x-www-form-urlencoded 方式
原文地址:https://blog.csdn.net/qq_35641923/article/details/81386708 要想以 x-www-form-urlencoded 方式傳送,最關鍵其實是傳送的資料格式。 方式from-data試傳送的資料用的是array格式,而方式
php curl請求介面並獲取資料
當我們在做php開發的時候,很多時候需要對介面進行測試,或者更方便的呼叫一些已有模組的介面,取到結果並進行後續操作,我們可以通過curl進行模擬提交post和get請求,來去實現這些功能。 下面是對curl的post和get的封裝 <?php /** * Cre
php curl請求介面並獲取資料示例
當我們在做PHP開發的時候,很多時候需要對介面進行測試,或者更方便的呼叫一些已有模組的介面,取到結果並進行後續操作,我們可以通過curl進行模擬提交post和get請求,來去實現這些功能。 下面是對curl的post和get的封裝 <?php /** *
[樂意黎原創]Centos主機動態安裝PHP的bcmath,Libmcrypt,mhash,mcrypt等擴充套件模組方法
如下,Centos裡啟動 php-fpm 時,控制檯總在拋若干警告。 [[email protected]] #service php-fpm start Starting php-fpm daemon is success[28-Nov-2018 17:45:40] NOTIC
PHP curl 直接獲取請求變數,不直接輸出
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 如果為1,後端echo 不會直接輸出到瀏覽器,如果為0後端echo 則會顯示在瀏覽器上 前端: 後端: 頁面 ////////////////////////////////
[樂意黎原創]阿里雲ECS雲伺服器未新增安全組規則設定導致通過公網IP地址不能訪問
前幾天從阿里雲購買了一臺ECS雲服務器,系統是CentOS7.2,配好了Apache,也關閉了防火牆,但是在瀏覽器通過IP地址不能訪問。 試了N遍,還原初始系統,重灌,到處尋問,還是無法解決和訪問,好
【轉載】PHP CURL 引數詳解
curl用法:cookie及post 一、cookie用法<?php $cookie_jar = tempnam('./tmp','cookie'); // login $c=curl_init('http://login_url?username=... curl_setopt($c, CU
php curl模組不能開啟問題解決方式
配置php.ini,把curl_dll前的分號去掉. 如圖: 將libssh2.dll,php_curl.dll,ssleay32.dll,libeay32.dll檔案複製到windows\sys
[樂意黎原創]mysql中關鍵字key導致不能插入資料的問題
在mysql 中插入,無意中欄位名稱有 key, 試了半天,沒見資料庫中有插入記錄。 如下: INSERT into jreport_nls.nlstable(key, value, version, type, more) VALUES('name',' aerchi',
不依賴Excel是否安裝的Excel導入導出類
arp GridView public rop urn combo order alignment 泛型 本文利用第三方開源庫NPOI實現Excel97-2003,Excel2007+的數據導入導出操作。不依賴Office是否安裝。NPOI開源項目地址:http://n
自己寫的php curl庫實現整站克隆
mod sta load dir extends end write star control 有時候常常會用到一些在線手冊,比方國內或國外的。有些是訪問速度慢,有些是作者直接吧站點關閉了,有些是server總是宕機。所以還是全盤克隆到自己server比較爽。所 已這裏
php curl如何設置自定義請求頭和打印請求頭信息
設置 發出 cnblogs lose 請求 clas false 自定義 col $header = [ ‘client:h5‘, ‘token:test‘, ]; curlRequest($url, $params, true, 10, $header
discuz新的單點論壇(不依賴UCenter)
web應用 之前 .net emp linux時間 論壇 自己的 ng- define discuz 本身提供UCENTER用戶中心能夠實現單點登錄。可是其它應用要單點登錄到discuz還是存在若幹問題: 須要2次激活。可能造成server無響應,論壇顯示的最新註冊用戶