php會話超時,php計時

本文目錄一覽:

php項目,怎麼設置sesssion的timeout時間

一個新用戶請求訪問一個 URL,該 URL 標識了某個應用程序中的 .asp 文件,並且該應用程序的 Global.asa 文件包含 Session_OnStart 過程。

用戶在 Session 對象中存儲了一個值。

用戶請求了一個應用程序的 .asp 文件,並且該應用程序的 Global.asa 文件使用 OBJECT 標籤創建帶有會話作用域的對象的實例。

如果用戶在指定時間內沒有請求或刷新應用程序中的任何頁,會話將自動結束。這段時間的默認值是 20 分鐘。可以通過在 Internet 服務管理器中設置「應用程序選項」屬性頁中的「會話超時」屬性改變應用程序的默認超時限制設置。應依據您的 Web 應用程序的要求和伺服器的內存空間來設置此值。例如,如果您希望瀏覽您的 Web 應用程序的用戶在每一頁僅停留幾分鐘,就應該縮短會話的默認超時值。過長的會話超時值將導致打開的會話過多而耗盡您的伺服器的內存資源。

對於一個特定的會話,如果您想設置一個小於默認超時值的超時值,可以設置 Session 對象的 Timeout 屬性。例如,下面這段腳本將超時值設置為 5 分鐘。

% Session.Timeout = 5 %

您也可以設置一個大於默認設置的超時值,Session.Timeout 屬性決定超時值。

您也可以通過 Session 對象的 Abandon 方法顯式結束一個會話。例如,在表格中提供一個「退出」按鈕,將按鈕的 ACTION 參數設置為包含下列命令的 .asp 文件的 URL 。

% Session.Abandon %

———————————————————

關於 SessionID 和 Cookie

當用戶第一次請求給定的應用程序中的 .asp 文件時,ASP 生成一個 SessionID。SessionID 是由一個複雜演算法生成的號碼,它唯一標識每個用戶會話。在新會話開始時,伺服器將 Session ID 作為一個 cookie 存儲在用戶的 Web 瀏覽器中。

SessionID 與鑰匙很相似,當會話期間用戶與應用程序交互時,ASP 可以將用戶信息存儲在伺服器的一個「保險箱」中。正象用鑰匙能存取保險箱中物品一樣,通過在 HTTP 請求標題中發送的用戶 SessionID cookie,就能夠對該「保險箱」中的內容進行訪問。每當 ASP 收到一個頁請求時,就檢查 HTTP 請求標題,以獲得 SessionID cookie。

在將 SessionID cookie 存儲於用戶的瀏覽器之後,即使用戶請求了另一個 .asp 文件,或請求了運行在另一個應用程序中的 .asp 文件,ASP 仍會重用該 cookie 跟蹤會話。與此相似,如果用戶故意放棄會話或讓會話超時,然後再請求另一個 .asp 文件,那麼 ASP 將以同一個 cookie 開始新的會話。只有當伺服器管理員重新啟動伺服器或用戶重新啟動 Web 瀏覽器時,此時存儲在內存中的 SessionID 設置將被清除,用戶將會獲得新的 SessionID cookie。

通過重用 SessionID cookie,ASP 將發送給用戶瀏覽器的 cookie 數量降為最低。另外,如果您決定您的 ASP 應用程序不需要會話管理,就可以不讓 ASP 跟蹤會話和向用戶發送 SessionID 。

TimeOut設為0或-1就可以不超時

php語言如何設置超時處理??

set_time_limit — 限制最大的執行時間

set_time_limit

(PH3 , PHP4)

set_time_limit — 限制最大的執行時間

語法 : void set_time_limit (int seconds)

說明 :

設定一個程式所允許執行的秒數,如果到達限制的時間,程式將會傳回錯誤。它預設的限制時間是30秒,max_execution_time的值定義在結構檔案中(在PHP3中叫做php3.ini,在PHP4則叫做php.ini),如果將秒數設為0,表示無時間上的限制。

當呼叫此函式時,set_time_limit( )會從零重新開始計算最長執行的時間,也就是說,如果最長執行時間為預設的30秒,而在呼叫此函式set_time_limit(20)之前已花了25秒來執行程式,則程式最長執行的時間將會是45秒。

注意 : 當PHP是執行在安全模式時,set_time_limit( )將不會有結果,除非是關閉安全模式或是修改結構檔案中(在PHP3中叫做php3.ini,在PHP4則叫做php.ini)的時間限制。

PHP中幾種常見的超時處理全面總結

具體代碼如下:

?php

$ch = curl_init();

$timeout = 5;

curl_setopt ($ch, CURLOPT_URL, ”);

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);

$file_contents = curl_exec($ch);

curl_close($ch);

echo $file_contents;

?

PHP 獨特的語法混合了C、Java、Perl以及PHP自創的語法。

它可以比CGI或者Perl更快速地執行動態網頁。用PHP做出的動態頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標準通用標記語言下的一個應用)文檔中去執行,

執行效率比完全生成HTML標記的CGI要高許多;

PHP還可以執行編譯後代碼,編譯可以達到加密和優化代碼運行,使代碼運行更快。

幾種常見的PHP超時處理方法

進入php源程序目錄中的ext目錄中,這裡存放著各個擴展模塊的源代碼,選擇你需要的模塊,比如curl模塊:cd curl

執行phpize生成編譯文件,phpize在PHP安裝目錄的bin目錄下

/usr/local/php5/bin/phpize

運行時,可能會報錯:Cannot find autoconf. Please check your autoconf installation and

the $PHP_AUTOCONF

environment variable is set correctly and then rerun this

script.,需要安裝autoconf:

yum install autoconf(RedHat或者CentOS)、apt-get install

autoconf(Ubuntu Linux)

/usr/local/php5/bin/php -v

執行這個命令時,php會去檢查配置文件是否正確,如果有配置錯誤,

這裡會報錯,可以根據錯誤信息去排查!

PHP file_get_contents 函數超時的幾種解決方法

這裡就簡單介紹兩種:

一、增加超時的時間限制

這裡需要注意:set_time_limit只是設置你的PHP程序的超時時間,而不是file_get_contents函數讀取URL的超時時間。

我一開始以為set_time_limit也能影響到file_get_contents,後來經測試,是無效的。真正的修改file_get_contents延時可以用resource

$context的timeout參數:

複製代碼

代碼如下:

$opts

=

array(

『http’=array(

『method’=」GET」,

『timeout’=60,

)

);

$context

=

stream_context_create($opts);

$html

=file_get_contents(”,

false,

$context);

fpassthru($fp);

二、一次有延時的話那就多試幾次

有時候失敗是因為網路等因素造成,沒有解決辦法,但是可以修改程序,失敗時重試幾次,仍然失敗就放棄,因為file_get_contents()如果失敗將返回

FALSE,所以可以下面這樣編寫代碼:

複製代碼

代碼如下:

$cnt=0;

while($cnt

3

($str=@file_get_contents(‘http…’))===FALSE)

$cnt++;

php httpclient 超時怎麼辦

//HttpClient功能很強大,可以和snoopy一樣實行模擬數據提交等操作

使用靜態方法quikGet(ur)或者quickPost(url)無法做到設置超時時間,所以做了如下修改,通過下面的方法可以實現

//設置時間超時

$bits = parse_url($main_url);

$host = $bits[‘host’];

$port = isset($bits[‘port’]) ? $bits[‘port’] : 80;

$path = isset($bits[‘path’]) ? $bits[‘path’] : ‘/’;

if (isset($bits[‘query’])) {

echo $path .= ‘?’.$bits[‘query’];

}

// $client = new HttpClient($main_url);

//$client-setDebug(false);

$client = new HttpClient($host, $port);

$client -timeout =10;

if (!$client-get($path)) {

return false;

} else {

$pageContents = $client-getContent();

}

//

原創文章,作者:RVIO,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/131321.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
RVIO的頭像RVIO
上一篇 2024-10-03 23:44
下一篇 2024-10-03 23:44

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若伺服器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • PHP登錄頁面代碼實現

    本文將從多個方面詳細闡述如何使用PHP編寫一個簡單的登錄頁面。 1. PHP登錄頁面基本架構 在PHP登錄頁面中,需要包含HTML表單,用戶在表單中輸入賬號密碼等信息,提交表單後服…

    編程 2025-04-27
  • PHP與Python的比較

    本文將會對PHP與Python進行比較和對比分析,包括語法特性、優缺點等方面。幫助讀者更好地理解和使用這兩種語言。 一、語法特性 PHP語法特性: <?php // 簡單的P…

    編程 2025-04-27
  • PHP版本管理工具phpenv詳解

    在PHP項目開發過程中,我們可能需要用到不同版本的PHP環境來試驗不同的功能或避免不同版本的兼容性問題。或者我們需要在同一台伺服器上同時運行多個不同版本的PHP語言。但是每次手動安…

    編程 2025-04-24
  • PHP數組去重詳解

    一、array_unique函數 array_unique是php中常用的數組去重函數,它基於值來判斷元素是否重複,具體使用方法如下: $array = array(‘a’, ‘b…

    編程 2025-04-24
  • PHP導出Excel文件

    一、PHP導出Excel文件列寬調整 當我們使用PHP導出Excel文件時,有時需要調整單元格的列寬。可以使用PHPExcel類庫中的setWidth方法來設置單元格的列寬。下面是…

    編程 2025-04-24
  • php擴展庫初探

    一、什麼是php擴展庫? PHP擴展庫(PHP extension)是一些用C語言編寫的動態鏈接庫,用於擴展PHP的功能。PHP擴展庫使得PHP可以與各種資料庫系統相連、SMTP、…

    編程 2025-04-23

發表回復

登錄後才能評論