PHP 5.3 Deprecated: Function ereg() – Javítás
Akik PHP 5.2-ről 5.3-ra térnek át, minden bizonnyal találkoznak pár Deprecated üzenettel. Röviden ismertetem a leggyakoribb (ereg(), eregi()) megoldását.
A PHP 5.3-ban sok funkció nem támogatott már, ezért azokat a kódban mellőzni kell, illetve valamivel helyettesíteni. Így például az ereg() és eregi() funkciót a preg_match()-vel.
Példa.:
if(!eregi("^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$", $str)) {
msg = 'az email nem helyes!';
}
if(!preg_match("/^[_\.0-9a-zA-Z-]+@([0-9a-zA-Z][0-9a-zA-Z-]+\.)+[a-zA-Z]{2,6}$/i", $str)) {
$msg = 'az email nem helyes';
}
Az eregi() i módosítója a preg_match() minta végén kerül be.
További 5.3-as nem támogatott funkciók:
- call_user_method() helyette: call_user_func()
- call_user_method_array() (helyette: call_user_func_array()
- define_syslog_variables()
- dl()
- ereg() helyette: preg_match()
- ereg_replace() helyette: preg_replace()
- eregi() helyette: preg_match() with the 'i' modifier
- eregi_replace() helyette: preg_replace() with the 'i' modifier
- set_magic_quotes_runtime() és az alias magic_quotes_runtime()
- session_register() helyette: $_SESSION superglobal
- session_unregister() helyette: $_SESSION superglobal
- session_is_registered() helyette: $_SESSION superglobal
- set_socket_blocking() helyette: stream_set_blocking()
- split() helyette: preg_split()
- spliti() helyette: preg_split() az 'i' módosítóval
- sql_regcase()
- mysql_db_query() helyette: mysql_select_db() és mysql_query()
- mysql_escape_string() helyette: mysql_real_escape_string()
- az is_dst paraméter a mktime()-hoz. Helyette az új timezone kezelő funkciókat kell használni.
