棄用函數的用法
回答
如上所述,您不應該使用eregi或任何其他棄用函數,因爲它們已在下一版本的PHP中被刪除。
查看the preg* functions基於PCRE(Perl兼容正則表達式)的替代方案(preg_match和preg_match_all是需要電子郵件驗證的功能)。 eregi *函數是基於posix的正則表達式,所以PCRE的語法略有不同,但它不是一個重大變化。
爲什麼一個函數會被棄用? Wikipedia建議:
- 該功能已被更強大的替代功能取代。
- 該功能被認爲是無關的,將來會被刪除以簡化整個系統。
- 該軟件的未來版本計劃進行重大結構更改,這使得支持舊功能變得不可能(或不切實際)。
- 命名中的標準化或增加的一致性
- 該功能包含設計缺陷 - 經常出現安全缺陷 - 因此應該避免,但現有代碼依賴於它。
不應使用不推薦使用的函數;這是因爲,儘管它們在當前版本的解釋器中正常工作,但它們可能(並且將會)從未來的版本中完全移除。所以如果你在舊項目中使用它們,你可能會留下它們(但是當你遷移到一個新的php版本時你的項目可能會中斷)。
但絕對不要在新項目中使用它們。
它的用法是正確的,但不推薦使用。這意味着在將來的PHP版本中,此方法可能會被刪除。這可能是由於安全性,冗餘或其他原因。通常還有其他方法可以用來代替這些方法(例如eregi - > preg_match)
如果希望腳本向前兼容,則不應使用棄用的函數。他們現在工作,但未來可能無法工作。或者,更糟糕的是,他們提出了一個嚴重的錯誤,這個錯誤不能被固定地修復,但是需要修改一個更大的變化,而修復單個函數是無法解決的。
在你的情況,eregi將被從PHP 6中刪除,你的腳本將會失敗。改爲使用preg_match()
或preg_match_all()
。
ereg
和eregi
已棄用,因爲它們不適用於Unicode。
在回答問題"Why is ereg being deprecated?",Rasmus Lerdorf是這樣說的:
真正的答案是,有沒有 Unicode支持在額日格功能, 和喜歡還是不喜歡,這個世界是怎麼回事 Unicode。
請參閱PHP-DEV郵件列表上的the discussion。
正如其他人所說,你不應該使用過時的功能,並在預浸料的功能看,而不是。
專門用於電子郵件驗證,如果您的Web應用程序將運行在PHP 5.2及更高版本的服務器上,則可能需要查看PHP的filter(特別是filter_var)函數。過濾器函數也可用於URL驗證和驗證IP地址等。
只要使用preg_match
以「我」修飾
echo eregi('[\w\.-_][email protected][\w\.-_]+\.([a-z]{2,3})', $email) ? 'correct' : 'wrong';
echo preg_match('#[\w\.-_][email protected][\w\.-_]+\.([a-z]{2,3})#i', $email) ? 'correct' : 'wrong';
- 1. 棄用:函數eregi()已棄用
- 2. MapDB棄用函數
- 3. Symfony棄用函數
- 4. 函數表示法是否被棄用?
- 5. PHP函數ereg_replace()已棄用
- 6. 如何棄用Python函數?
- 7. 已棄用OpenGL函數
- 8. php棄用:函數eregi()被棄用,如何?
- 9. 棄用:函數eregi()已棄用,如何解決此錯誤?
- 10. mongodb的'updateMany'函數是否被棄用?
- 11. #pragma棄用基於簽名的函數?
- 12. 問題與棄用的PHP函數
- 13. 未被棄用的Java日期函數
- 14. 在PHP更新中棄用的函數和方法
- 15. 節點棄用警告:不使用回調調用異步函數已棄用
- 16. AmazonKinesisClient構造函數已被棄用
- 17. mysql():此函數在Typo3中已棄用
- 18. 「函數split()已棄用」在PHP中?
- 19. Doctrine postPersist Event棄用getEntity函數
- 20. PHP7.1和Laravel 5.3:函數mcrypt_get_iv_size()已棄用
- 21. 向PHP5添加刪除/棄用函數
- 22. 構造函數時間已棄用
- 23. 構造函數通知已棄用
- 24. Apps腳本getRowsData函數已被棄用?
- 25. 函數session_is_registered()如何被棄用?
- 26. 方法startManagingCursor和構造函數SimpleCursorAdapter已棄用
- 27. 棄用方法addPreferencesFromResources
- 28. GCD棄用方法
- 29. JasperReport中的棄用方法
- 30. 的UITableViewCell:initWithFrame:方法reuseIdentifier棄用
非常感謝所有他的答案,但我想第一部分保持仍然無人應答......如果事情做工精細與特定的載體作用..爲什麼人覺得有必要貶低其他it..or西隧的問題可能已經被竊聽,使他們做到這一點.. – Sachindra 2009-11-16 10:38:38
@ sachindra149,看到我的答案的傢伙。 – 2009-11-16 10:47:22
謝謝你的答案... – Sachindra 2009-11-16 11:01:52