// 刪除php
方法1:將其值設置爲空字符串web
setcookie('user[name]', '');算法
方法2:將目標cookie設爲「已過時」狀態。shell
//將cookie的生存時間設置爲過時,則生存期限與瀏覽器同樣,當瀏覽器關閉時就會被刪除。數組
setcookie('usr[name]', '', time()-1);瀏覽器
# 注意:緩存
1. cookie只能保存字符串數據2. $_COOKIE只用於接收cookie數據,不用於設置或管理cookie數據。服務器
對$_COOKIE進行操做不會影響cookie數據。cookie
$_COOKIE只會保存瀏覽器在請求時所攜帶的cookie數據。3. cookie生命週期:session
臨時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:password@hostname/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);