自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

探討PHP ereg()函數(shù)與正則表達(dá)式的匹配

開(kāi)發(fā) 后端
PHP ereg()函數(shù)是POSIX擴(kuò)展庫(kù)中正則表達(dá)式的匹配函數(shù),但是他對(duì)于大小寫(xiě)的要求是嚴(yán)格的,而eregi()函數(shù)則忽略了大小寫(xiě)。

PHP語(yǔ)言中比較難掌握的一點(diǎn)要數(shù)正則表達(dá)式,通常初學(xué)者們都會(huì)在這上面耗掉許多時(shí)間。我們今天要為大家介紹的是POSIX擴(kuò)展庫(kù)中正則表達(dá)式的匹配函數(shù)——PHP ereg()函數(shù)。

#t#不過(guò),eregi()是PHP ereg()函數(shù)的忽略大小寫(xiě)的版本。二者與preg_match的功能類(lèi)似,但函數(shù)返回的是一個(gè)布爾值,表明匹配成功與否。需要說(shuō)明的是,POSIX擴(kuò)展庫(kù)函數(shù)的***個(gè)參數(shù)接受的是正則表達(dá)式字符串,即不需要使用分界符。例如,代碼6.2是一個(gè)關(guān)于文件名安全檢驗(yàn)的方法。

代碼6.2 文件名的安全檢驗(yàn)

  1. < ?php  
  2. $username = $_SERVER['REMOTE_USER'];  
  3. $filename = $_GET['file'];  
  4. //對(duì)文件名進(jìn)行過(guò)濾,以保證系統(tǒng)安全  
  5. if (!ereg('^[^./][^/]*$', $userfile))  
  6. {  
  7. die('這不是一個(gè)非法的文件名!');  
  8. }  
  9. //對(duì)用戶(hù)名進(jìn)行過(guò)濾  
  10. if (!ereg('^[^./][^/]*$', $username))  
  11. {  
  12. die('這不是一個(gè)無(wú)效的用戶(hù)名');  
  13. }  
  14. //通過(guò)安全過(guò)濾,拼合文件路徑  
  15. $thefile = "/home/$username/$filename";  
  16. ?> 

 

通常情況下,使用與Perl兼容的正則表達(dá)式匹配函數(shù)perg_match(),將比使用PHP ereg()函數(shù)或eregi()的速度更快。如果只是查找一個(gè)字符串中是否包含某個(gè)子字符串,建議使用strstr()或strpos()函數(shù)。
 

責(zé)任編輯:曹凱 來(lái)源: e897.com
相關(guān)推薦

2009-09-16 13:14:10

Ereg正則表達(dá)式

2011-05-11 17:40:30

PHP正則表達(dá)式

2009-09-16 13:24:30

PHP正則表達(dá)式匹配

2009-09-16 13:53:17

PHP正則表達(dá)式匹配

2009-09-16 09:58:53

PHP正則表達(dá)式函數(shù)

2009-09-16 10:43:22

PHP正則表達(dá)式函數(shù)

2009-09-16 16:22:04

正則表達(dá)式匹配

2009-09-16 18:16:34

正則表達(dá)式

2009-11-27 09:05:50

PHP函數(shù)split(

2009-11-30 17:22:24

PHP正則表達(dá)式多行匹

2012-04-28 15:22:46

PHP

2018-09-27 15:25:08

正則表達(dá)式前端

2009-09-16 18:08:14

正則表達(dá)式匹配單詞

2010-01-05 17:46:04

.NET Framew

2009-09-16 14:32:43

PHP正則表達(dá)式替換

2009-09-16 10:59:24

PHP正則表達(dá)式元字符

2009-09-16 16:01:57

PHP正則表達(dá)式正則表達(dá)式的應(yīng)用

2009-09-16 11:17:12

PHP正則表達(dá)式定位字

2009-04-22 15:06:16

正則表達(dá)式PHP特殊字符

2015-12-07 10:03:40

實(shí)用PHP表達(dá)式
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)