導航:首頁 > 編程語言 > phpcurl長連接

phpcurl長連接

發布時間:2024-03-13 06:56:04

php curl 保持會話

樓主的思路問題不大,但是服務端不支持你想什麼辦法都沒用,最好是服務端能支持令牌(token)模式,否則在安全機制的作用下用curl是維持不了你所說的長連接的。
關於會話模式,通常所說的回話模式並不等同於持久連接,php發起的curl會話的生命周期是當前的php進程而已。這么打個比方吧,你通過a.php完成了登錄,然後b.php想使用剛才拿到的認證繼續工作,相當於在ie窗口登錄,然後在firefox瀏覽器繼續工作,伺服器端當然不認可了。
何況我用你提供的賬號實驗了一下,登錄之後會進入到 http://sms.huhutv.com.cn/rtcrm-clientweb/npage/base/pub/pub0010/Pub0010Controller-initMainPage.gv 這個頁面,然後關掉頁面並打開一個新的標簽頁,粘貼這個地址後直接就報錯了,說 「非法進入系統」,可是偏偏重新登錄的時候又提示您的賬號已經登錄。
呵呵,服務端自己的登錄/認證處理都工作不正常,你搞curl持久連接又怎麼可能成功。

⑵ PHP如何開啟CURL擴展支持

開啟curl擴展,這需要修改PHP的配置,在Windows 中只需簡單三步:

  1. 將PHP安裝文件夾下的三個文件php_curl.dll(可能在ext文件夾中),libeay32.dll,ssleay32.dll 復制到 %windir%/system32下。

3、重啟php的服務(apache或者IIS),如重啟IIS,運行iisreset即可。

⑶ 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的請求,大家感興趣可以看看。

function curl_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是超時時間。
function curl_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;
}

linux下xampp集成環境中怎麼為php添加curl擴展

curl是利用URL語法在命令行方式下工作的開源文件傳輸工具。它被廣泛應用在Unix、多種Linux發行版中,並且有DOS和Win32、Win64下的移植版本。

在xampp集成環境中,curl自帶,只不過默認關閉。

vim/etc/php.ini

註:此處的/etc/php.ini 請找到自己的php.ini路徑

所有的 Unix Like 系統都會內建 vi 文書編輯器,其他的文書編輯器則不一定會存在。vim 具有程序編輯的能力,可以主動的以字體顏色辨別語法的正確性,方便程序設計。

然後找到:

;extension=php_curl.dll

在Vim下搜索字元串方法如下:

1、命令模式下輸入「/字元串」,例如「/Section 3」。

2、如果查找下一個,按「n」即可。

要自當前游標位置向上搜索,請使用以下命令:

/pattern Enter

將;extension=php_curl.dll的注釋去掉,保存退出

:x 寫入文件並退出。僅當文件被修改時才寫入,並更新文件修改時間,否則不會更新文件修改時間。

最後重啟服務即可

service httpd restart

閱讀全文

與phpcurl長連接相關的資料

熱點內容
vs2010編譯嵌套太深 瀏覽:980
程序員面試注意事項 瀏覽:740
scratch編譯為h5 瀏覽:208
威聯通套件編譯 瀏覽:231
清刻pdf 瀏覽:982
可編程延時發生器 瀏覽:93
濱州用伺服器織夢要怎麼上傳文件 瀏覽:866
java7與java8 瀏覽:958
真空壓縮袋什麼材質好 瀏覽:935
excel批量見建文件夾 瀏覽:556
黑馬程序員就業班筆記 瀏覽:370
單片機供電自鎖電路設計 瀏覽:56
pythongui測試工具 瀏覽:834
哈曼l7功放編程 瀏覽:220
體溫單片機 瀏覽:613
快捷鍵命令不能用了 瀏覽:349
邊界層加密網格優點 瀏覽:236
linuxvi保存文件 瀏覽:536
把視頻打包出文件夾是什麼意思 瀏覽:446
如何在藏書館app上注銷賬號 瀏覽:827