欧美成人午夜免费全部完,亚洲午夜福利精品久久,а√最新版在线天堂,另类亚洲综合区图片小说区,亚洲欧美日韩精品色xxx

扣丁學堂PHP視頻教程之session實現(xiàn)機制和PHP正則表達式詳解

2018-01-30 11:51:13 1438瀏覽

近年來,I隨著國內T行業(yè)發(fā)展迅猛,無論是高薪行業(yè)的標簽,還是互聯(lián)網就業(yè)的保障,都吸引著越來越多的人加入到行業(yè)中來。而縱觀IT行業(yè)中的眾多編程語言,PHP在服務器腳本語言市場的占有率上一直遙遙領先。今天扣丁學堂小編給大家整理了一下關于PHP視頻教程中的session實現(xiàn)機制和PHP正則表達式詳解吧。



一、默認機制,用磁盤文件來實現(xiàn)PHP會話。php.ini配置:session.save_handler=files

1、session_start()

A、session_start()是session機制的開始,它有一定概率開啟垃圾回收,因為session是存放在文件中,

PHP自身的垃圾回收是無效的,SESSION的回收是要刪文件的,這個概率是根據(jù)php.ini的配置決定的,

但是有的系統(tǒng)是session.gc_probability=0,這也就是說概率是0,而是通過cron腳本來實現(xiàn)垃圾回收。

session.gc_probability=1

session.gc_divisor=1000

session.gc_maxlifetime=1440//過期時間默認24分鐘

//概率是session.gc_probability/session.gc_divisor結果1/1000,

//不建議設置過小,因為session的垃圾回收,是需要檢查每個文件是否過期的。

session.save_path=//好像不同的系統(tǒng)默認不一樣,有一種設置是“N;/path”

//這是隨機分級存儲,這個樣的話,垃圾回收將不起作用,需要自己寫腳本

B、session會判斷當前是否有$_COOKIE[session_name()];session_name()返回保存session_id的COOKIE鍵值,

這個值可以從php.ini找到

session.name=PHPSESSID//默認值PHPSESSID

C、如果不存在會生成一個session_id,然后把生成的session_id作為COOKIE的值傳遞到客戶端.

相當于執(zhí)行了下面COOKIE操作,注意的是,這一步執(zhí)行了setcookie()操作,COOKIE是在header頭中發(fā)送的,

這之前是不能有輸出的,PHP有另外一個函數(shù)session_regenerate_id()如果使用這個函數(shù),這之前也是不能有輸出的。

setcookie(session_name(),

session_id(),

session.cookie_lifetime,//默認0

session.cookie_path,//默認’/’當前程序跟目錄下都有效

session.cookie_domain,//默認為空

)

D、如果存在那么session_id=$_COOKIE[session_name];

然后去session.savepath指定的文件夾里去找名字為’SESS’.session_id()的文件.

讀取文件的內容反序列化,然后放到$_SESSION中

2、為$_SESSION賦值

比如新添加一個值$_SESSION[‘test’]=’blah';那么這個$_SESSION只會維護在內存中,當腳本執(zhí)行結束的時候,

用把$_SESSION的值寫入到session_id指定的文件夾中,然后關閉相關資源.這個階段有可能執(zhí)行更改session_id的操作,

比如銷毀一個舊的的session_id,生成一個全新的session_id.一半用在自定義session操作,角色的轉換上,

比如Drupal.Drupal的匿名用戶有一個SESSION的,當它登錄后需要換用新的session_id

if(isset($_COOKIE[session_name()])){

setcookie(session_name(),”,time()42000,’/’);//舊sessioncookie過期

}

session_regenerate_id();//這一步會生成新的session_id

//session_id()返回的是新的值

二、PHP正則表達式的基礎總結

開頭的^和結尾的$讓PHP從字符串開頭檢查到結尾。假使沒有$,程序仍會匹配到Email的末尾。

開頭的^和結尾的$讓PHP從字符串開頭檢查到結尾。假使沒有$,程序仍會匹配到Email的末尾。

[和]被用來限制許可輸入類型。例如a-z允許所有的小寫字母,A-Z允許所有的大寫字母,0-9所有數(shù)字,等等,以及更多其他類型。

{和}被用來限制期望的字符數(shù)。例如{2,4}表示字符串的每一節(jié)可以有2-4字符長度,像是.com.cn或.info。在這里,"."并不算一個字符,因為{2,4}之前定義的許可輸入類型只有大小寫字母,故此段只匹配大小寫字母

(和)被用來合并小節(jié),并定義字符串中必須存在的字符。(a|b|c)能夠匹配a或b或c。

(.)將匹配所有字符,而[.]只匹配"."本身。

要使用一些符號本身,必須在前增加一個\。這些字符有:()[].*?+^|$

/定界符

^字符串頭

$字符串尾

[a-z]所有小寫字母

[A-Z]所有大寫字母

[0-9]所有數(shù)字

?零或一個緊接前的字符

零或多個緊接前的字符

一或多個緊接前的字符

{4}4個緊接前的字符

{4,8}4-8個緊接前的字符

.任意字符

(red|green|blue)Red或green或blue(紅或綠或藍)

s空格

特殊字符(需要在前加\)

()[].*?+^|$

規(guī)則匹配preg_match

利用preg_match(),我們可以完成字符串的規(guī)則匹配。如果找到一個匹配,preg_match()函數(shù)返回1,否則返回0。還有一個可選的第三參數(shù)可以讓你把匹配的部分存在一個數(shù)組中。在驗證數(shù)據(jù)時這個功能可以變得非常有用。

$string="football";

if(preg_match('/foo/',$string)){

//匹配正確

}

規(guī)則替換preg_replace

preg_replace允許你替換字符串中匹配到你定義的正則表達式。

$val="/123456789/abcd";

$pp=preg_replace("/[(\/*)+(.)(*\/)+]+/",'fuck',$val);

print_r($pp);

結果是:fuck123456789fuckabcd

規(guī)則分割preg_split

preg_split可以將整段字符串按匹配到的正則表達式分割成1、2或更多字符的多段。比如獲取標簽,無論是用空格還是逗號分隔的:

$tags=preg_split('/[,]/','my,tags,unevenly,spaced');

print_r($tags);

結果是:Array([0]=>my[1]=>tags[2]=>unevenly[3]=>spaced)

以上就是關于扣丁學堂PHP視頻教程中的session實現(xiàn)機制和PHP正則表達式的詳細介紹,希望對大家有幫助,最后想要了解更多關于PHP開發(fā)發(fā)展前景趨勢,請關注扣丁學堂官網、微信等平臺,扣丁學堂IT職業(yè)在線學習教育平臺為您提供權威的PHP培訓視頻教程系統(tǒng),通過千鋒扣丁學堂金牌講師在線錄制的一套PHP視頻教程課程,讓你快速掌握PHP從入門到精通開發(fā)實戰(zhàn)技能??鄱W堂PHP開發(fā)工程師技術交流群:374332265。



扣丁學堂微信公眾號



關注微信公眾號獲取更多學習資料



查看更多關于“php培訓資訊的相關文章>>

標簽: PHP培訓 PHP視頻教程 PHP從入門到精通 PHP學習路線圖 PHP開發(fā)工程師

熱門專區(qū)

暫無熱門資訊

課程推薦

微信
微博
15311698296

全國免費咨詢熱線

郵箱:codingke@1000phone.com

官方群:148715490

北京千鋒互聯(lián)科技有限公司版權所有   北京市海淀區(qū)寶盛北里西區(qū)28號中關村智誠科創(chuàng)大廈4層
京ICP備2021002079號-2   Copyright ? 2017 - 2022
返回頂部 返回頂部