標籤:版本 尾碼 gis 到期 lod 掃描 影響 將不 art
// 刪除
方法1:將其值設定為空白字串
setcookie(‘user[name]‘, ‘‘);
方法2:將目標cookie設為“已到期”狀態。
//將cookie的存留時間設定為到期,則生存期限與瀏覽器一樣,當瀏覽器關閉時就會被刪除。
setcookie(‘usr[name]‘, ‘‘, time()-1);
# 注意:
1. cookie只能儲存字串資料2. $_COOKIE只用於接收cookie資料,不用於設定或管理cookie資料。
對$_COOKIE進行操作不會影響cookie資料。
$_COOKIE只會儲存瀏覽器在請求時所攜帶的cookie資料。3. cookie生命週期:
臨時cookie:瀏覽器關閉時被刪除
持久cookie:$expire參數為時間戳記,表示失效時間。4. 有效目錄
cookie只在指定的目錄有效。預設是目前的目錄及其子目錄。
子目錄的cookie在其父目錄或同級目錄不可擷取。5. cookie區分網域名稱
預設是當前網域名稱及其子網域名稱有效。6. js中通過document.cookie獲得,類型為字串7. 瀏覽器對COOKIE總數沒有限制,但對每個網域名稱的COOKIE數量和每個COOKIE的大小有限,而且不同瀏覽器的限制不同。
/* 【session】 */
1. 開啟session機制
session_start()
注意:session_start()函數前不能有輸出!除非開啟ob緩衝。2. 操作資料
對$_SESSION數組進行操作
3. 瀏覽器端儲存SessionID,預設為當前網域名稱下的所有目錄及其子目錄生效。即預設設定cookie的path值為‘/‘
4. 伺服器儲存session資料
預設儲存方式:每個會話都會產生一個session資料檔案,檔案名稱為:sess_加SessionID5. session可以儲存除了資源以外的任何類型資料。
資料被序列化後再儲存到檔案中。6. $_SESSION的元素下標不能為整型!
因為只對元素值進行序列化。
元素內的數組下標無此要求。7. 生存周期
預設是瀏覽器關閉
因為瀏覽器儲存的cookie變數SessionID是臨時的
但是伺服器端的session資料檔案不一定消失(需要等待session的記憶體回收機制來處理)
可以延長cookie中PHPSESSID變數的生命週期。(不推薦)
php.ini配置session.gc_maxlifetime8. 刪除資料
$_SESSION變數在指令碼結束時依然會消失。開啟session機制時會造出$_SESSION變數。
$_SESSION與儲存session資料的檔案是兩個空間。
unset($_SESSION[‘key‘])只是刪除數組內的該元素,不會立即相應到儲存session資料的檔案上。
等到指令碼結束,才會將$_SESSION的資料寫入到該檔案中。
session_destroy() 銷毀儲存session資料的檔案,也不會對該檔案寫入內容。
並不刪除$_SESSION變數,unset或指令碼結束才會刪除該變數。
如何完全刪除一個session?需刪除3部分
unset($_SESSION);
刪除$_SESSION變數後,資料檔案並未被改動。如果單獨使用unset,則需先置空$_SESSION = array()
session_destroy();
setcookie(‘PHPSESSID‘, ‘‘, time()-1);//保險做法是將其生命週期失效 整個指令碼周期內,只對資料檔案讀一次、寫一次。
// 重寫session的儲存機制
# session儲存方式
session.save_handler = user|files|memcache
# 因資料檔案過多導致的問題,可通過分子目錄儲存進行解決
PHP設定檔下session.save_path選項,並需手動建立資料存放目錄。
在該配置選項前加層級。分布子目錄的原則,利用會話ID的相應字母來分配子目錄。仍需手動建立子目錄。
session.save_path = "2; F:/PHPJob/Temp"
# 多伺服器資料共用問題
# 資料存放區操作:
初始化$open、釋放資源$close、讀$read、寫$write、銷毀儲存介質$destroy(調用session_destroy時觸發該操作)、記憶體回收$gc
# 會話ID的長度可變。不同的設定方式導致不同長度的會話ID。
session.hash_function 允許使用者指定產生會話ID的散列演算法。
‘0‘ 表示MD5(128 位),‘1‘ 表示SHA-1(160 位)。
session.hash_bits_per_character 允許使用者定義將二進位散列資料轉換為可讀的格式時每個字元存放多少個位元。
可能值為 ‘4‘(0-9,a-f),‘5‘(0-9,a-v),以及 ‘6‘(0-9,a-z,A-Z,"-",",")。
總hash長度為128bit,會話ID長度為128/可能值,4->32, 5->26, 6->22
# 自訂資料存放區操作方法
# 注意:不用關心PHP如何序列化、還原序列化、如何得到資料和寫入資料,只做與資料存放區相關的操作session_set_save_handler
設定使用者自訂的會話資料存放區函數
bool session_set_save_handler(callable $open, callable $close, callable$read, callable $write, callable $destroy, callable $gc)
執行順序:open, close, read, write, destroy, gc
# 先設定處理器,再開啟會話
# 常用函數
session_start 開啟或恢複會話機制
session_id 擷取或設定當前會話
IDsession_destroy 銷毀當前會話的所有資料(銷毀資料檔案)
session_name 擷取或設定當前會話名稱(cookie變數名,預設為PHPSESSID)
session_save_path 擷取或設定當前會話資料檔案儲存路徑
session_set_save_handler 設定使用者自訂的會話資料存放區函數
session_unset 釋放所有會話變數(清空$_SESSION數組元素)
session_encode 將當前會話資料編碼為一個字串
session_decode 將字串解譯為會話資料
session_write_close 寫入會話資料並關閉會話
session_register_shutdown 關閉會話
session_set_cookie_params 設定會話cookie變數,必須在session_start()前使用。
session_set_cookie_params(0,"/webapp/");
//設定session存留時間
session_get_cookie_params 擷取會話cookie變數。返回包含當前會話cookie資訊的數組
# 配置
php.iniini_set($varname, $newvalue);
//該函數的配置只對當前指令碼生效
//並非所有php.ini設定均可用該函數設定ini_get($varname) //擷取某配置項資訊ini_get_all([str $extension]) //返回所有配置項資訊的
數組
# session擴充配置
session.name 指定會話名以用作cookie的名字。只能由字母數字組成,預設為PHPSESSID。
session.save_path 定義了傳遞給儲存處理器的參數。
如果選擇了預設的files檔案處理器,則此值是建立檔案的路徑。預設為/tmp。
可選的N參數來決定會話檔案分布的目錄深度。
要使用N參數,必須在使用前先建立好這些目錄。在ext/session目錄下有個小的shell指令碼名叫mod_files.sh可以用來做這件事。
如果使用了N參數並且N大於0,那麼將不會執行自動記憶體回收。
session.save_handler 定義了來儲存和擷取與會話關聯的資料的處理器的名字。預設為files。
如果使用者自訂儲存空間,則該值改為user。
ini_set(‘session.save_handler‘, ‘user‘);//此設定只針對當前指令碼生效。
session.auto_start 指定會話模組是否在請求開始時自動啟動一個會話。預設為 0(不啟動)。
session.gc_probability與session.gc_divisor合起來定義了在每個會話初始化時啟動gc(garbage collection 記憶體回收)進程的機率。此機率用 gc_probability/gc_divisor 計算得來。例如 1/100 意味著在每個請求中有 1% 的機率啟動gc進程。session.gc_divisor預設為100。session.gc_probability預設為1。
/* 【圖片產生與處理】 */
GD庫// 畫布產生
# 建立畫布
imagecreate 建立一個基於調色盤的映像
resource imagecreate(int $x_size, int $y_size)
imagecreatetruecolor 建立一個真彩色映像
# 基於已有檔案或URL建立畫布
imagecreatefromgd2 從GD2檔案或URL建立一映像
imagecreatefromgd2part 從給定的GD2檔案或URL中的部分建立一映像
imagecreatefromgd 從GD檔案或URL建立一映像
imagecreatefromgif 由檔案或URL建立一個新圖象
imagecreatefromjpeg 由檔案或URL建立一個新圖象
imagecreatefrompng 由檔案或URL建立一個新圖象
imagecreatefromstring 從字串中的映像流建立一映像
imagecreatefromwbmp 由檔案或URL建立一個新圖象
imagecreatefromxbm 由檔案或URL建立一個新圖象
imagecreatefromxpm 由檔案或URL建立一個新圖象// 顏色分配imagecolorallocate 為一幅映像分配顏色
int imagecolorallocate(resource $image, int $red, int $green, int $blue)
imagecolorallocatealpha 為一幅映像分配顏色 + alpha
imagecolordeallocate 取消映像顏色的分配
imagecolortransparent 將某個顏色定義為透明色
imagecolorat 取得某像素的色彩索引值
imagecolorclosest 取得與指定的顏色最接近的顏色的索引值
imagecolorclosestalpha 取得與指定的顏色加透明度最接近的顏色
imagecolorclosesthwb 取得與給定顏色最接近的色度的黑白色的索引
imagecolorexact 取得指定顏色的索引值
imagecolorexactalpha 取得指定的顏色加透明度的索引值
imagecolormatch 使一個映像中調色盤版本的顏色與真彩色版本更能匹配
imagecolorresolve 取得指定顏色的索引值或有可能得到的最接近的替代值
imagecolorresolvealpha 取得指定顏色 + alpha 的索引值或有可能得到的最接近的替代值
imagecolorset 給指定調色盤索引設定顏色
imagecolorsforindex 取得某索引的顏色
imagecolorstotal 取得一幅映像的調色盤中顏色的數目// 地區填充imagefill 地區填充
bool imagefill(resource $image, int $x, int $y, int $color)
imagefilledarc 畫一橢圓弧且填充
imagefilledellipse 畫一橢圓並填充
imagefilledpolygon 畫一多邊形並填充
imagefilledrectangle 畫一矩形並填充
imagefilltoborder 地區填充到指定顏色的邊界為止
imagesettile 設定用於填充的貼圖// 圖形建立imagearc 畫橢圓弧
imagechar 水平地畫一個字元
imagecharup 垂直地畫一個字元
imagedashedline 畫一虛線
imageellipse 畫一個橢圓
imageline 畫一條線段
imagepolygon 畫一個多邊形
imagerectangle 畫一個矩形
imagesetpixel 畫一個單一像素
imagesx 取得映像寬度
imagesy 取得映像高度// 畫筆設定imagesetbrush 設定畫線用的畫筆映像
imagesetstyle 設定畫線的風格
imagesetthickness 設定畫線的寬度// 圖形拷貝imagecopy 拷貝映像的一部分
imagecopymerge 拷貝併合並映像的一部分
imagecopymergegray 用灰階拷貝併合並映像的一部分
imagecopyresampled 重採樣拷貝部分映像並調整大小
imagecopyresized 拷貝部分映像並調整大小// 字元建立imagestring 水平地畫一行字串
imagestringup 垂直地畫一行字串
imagepsslantfont 傾斜某字型
imagefontheight 取得字型高度
imagefontwidth 取得字型寬度
imagettfbbox 取得使用 TrueType 字型的文本的範圍
imageloadfont 載入一新字型
imagepsencodefont 改變字型中的字元編碼向量
imagepsextendfont 擴充或精簡字型// 匯出畫布為圖片imagegif 以GIF格式將映像輸出到瀏覽器或檔案
imagepng 以PNG格式將映像輸出到瀏覽器或檔案
imagejpeg 以JPEG格式將映像輸出到瀏覽器或檔案
imagewbmp 以WBMP格式將映像輸出到瀏覽器或檔案
通過header()發送 "Content-type: image/圖片格式" 可以使PHP指令碼直接輸出映像。
header("Content-type: image/gif"); imagegif($im);
imagegd 將 GD 映像輸出到瀏覽器或檔案
imagegd2 將 GD2 映像輸出到瀏覽器或檔案// 釋放畫布資源
imagedestroy 銷毀映像// 映像資訊
image_type_to_extension 取得映像類型的檔案尾碼getimagesize 取得映像大小
imagesx 取得映像寬度
imagesy 取得映像高度
imageistruecolor 檢查映像是否為真彩色映像
imagetypes 返回當前 PHP 版本所支援的映像類型// 映像設定
imagerotate 用給定角度旋轉映像
imagealphablending 設定映像的混色模式
imageantialias 是否使用消除鋸齒(antialias)功能
imagefilter 對映像使用過濾器
imagegammacorrect 對 GD 映像應用 gamma 修正
imageinterlace 啟用或禁止隔行掃描
/* 【縮圖】【浮水印】 */
imagecopyresampled 重採樣拷貝部分映像並調整大小
bool imagecopyresampled ( resource $dst_image , resource $src_image , int$dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int$src_w , int $src_h )
imagecopymerge 拷貝併合並映像的一部分
bool imagecopymerge ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h , int$pct )getimagesize 取得映像大小
array getimagesize ( string $filename [, array &$imageinfo ] )
/* 【URL函數】 */
get_headers — 取得伺服器響應一個 HTTP 請求所發送的所有標題get_meta_tags — 從一個檔案中提取所有的 meta 標籤 content 屬性,返回一個數組http_build_query — 產生 URL-encode之後的請求字串urldecode — 解碼已編碼的URL字串urlencode — 編碼URL字串parse_url — 解析URL,返回其組成部分
‘http://username:[email protected]/path?arg=value#anchor‘
scheme(如http), host, port, user, pass, path, query(在問號?之後), fragment(在散列符號#之後)
/編碼可用於交換多個變數
$a = ‘中國‘;$b = ‘四川‘;$a = urlencode($a);$b = urlencode($b);$a =$a.‘&‘.$b;$b = explode(‘&‘, $a);$a = urldecode($b[1]);$b =urldecode($b[0]);echo $a, $b;//list()函數用於交換變數list($a, $b) = array($b,$a);
PHP最全筆記(五)(值得收藏,不時翻看一下)