程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 探討PHP ereg()函數與正則表達式的匹配

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

編輯:關於PHP編程

不過,eregi()是PHP ereg()函數的忽略大小寫的版本。二者與preg_match的功能類似,但函數返回的是一個布爾值,表明匹配成功與否。需要說明的是,POSIX擴展庫函數的第一個參數接受的是正則表達式字符串,即不需要使用分界符。例如,代碼6.2是一個關於文件名安全檢驗的方法。

代碼6.2 文件名的安全檢驗

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

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


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved