十月 30 2011
PHP 5.2.X 升級 PHP 5.3.X 後不宜使用的function
Deprecated features in PHP 5.3.x
PHP 5.3.0 introduces two new error levels: E_DEPRECATED and E_USER_DEPRECATED. The E_DEPRECATED error level is used to indicate that a function or feature has been deprecated. The E_USER_DEPRECATED level is intended for indicating deprecated features in user code, similarly to the E_USER_ERROR and E_USER_WARNING levels.
The following is a list of deprecated INI directives. Use of any of these INI directives will cause an E_DEPRECATED error to be thrown at startup.
- define_syslog_variables
- register_globals
- register_long_arrays
- safe_mode
- magic_quotes_gpc
- magic_quotes_runtime
- magic_quotes_sybase
- Comments starting with ‘#’ are now deprecated in .INI files.
Deprecated functions:
- call_user_method() (use call_user_func() instead)
- call_user_method_array() (use call_user_func_array() instead)
- define_syslog_variables()
- dl()
- ereg() (use preg_match() instead)
- ereg_replace() (use preg_replace() instead)
- eregi() (use preg_match() with the ‘i’ modifier instead)
仍是使用preg_match()這個函式,只是在比對時,要忽略大小寫,加上『/i』的參數。
ex: preg_match("/^[a-z0-9]*$/i",$text); - eregi_replace() (use preg_replace() with the ‘i’ modifier instead)
仍是使用preg_replace()這個函式,只是在比對時,要忽略大小寫,加上『/i』的參數。
ex: preg_replace("/^[a-z0-9]*$/i",$text); - set_magic_quotes_runtime() and its alias, magic_quotes_runtime()
建議將它disabled - session_register() (use the $_SESSION superglobal instead)
將session_register()改為使用$_SESSION superglobal的寫法代替
ex: session_register("abc"); 改為 $_SESSION["abc"]; - session_unregister() (use the $_SESSION superglobal instead)
同上 - session_is_registered() (use the $_SESSION superglobal instead)
同上 - set_socket_blocking() (use stream_set_blocking() instead)
- split() (use preg_split() instead)
仍是使用preg_split()這個函式,只是在比對時,要忽略大小寫,加上『/i』的參數。
ex: preg_split("/^[a-z0-9]*$/i",$text); - spliti() (use preg_split() with the ‘i’ modifier instead)
仍是使用preg_split()這個函式,只是在比對時,要忽略大小寫,加上『/i』的參數。
ex: preg_split("/^[a-z0-9]*$/i",$text); - sql_regcase()
- mysql_db_query() (use mysql_select_db() and mysql_query() instead)
- mysql_escape_string() (use mysql_real_escape_string() instead)
- Passing locale category names as strings is now deprecated. Use the LC_* family of constants instead.
- The is_dst parameter to mktime(). Use the new timezone handling functions instead.
Deprecated features:
- Assigning the return value of new by reference is now deprecated.
- Call-time pass-by-reference is now deprecated.
- The use of {} to access string offsets is deprecated. Use [] instead.
document source from (資料來源) : http://www.php.net/manual/en/migration53.deprecated.php
若在更新的過程中,發現以下的錯誤訊息,解決方法如下:
| Deprecated: Function split() is deprecated in ……. | 將split 改為 preg_split |
| Deprecated: Function ereg_replace() is deprecated in……… | 將ereg_replace 換成preg_replace |
| Deprecated: Function ereg() is deprecated in …….. | 將ereg換成preg_match |
| Deprecated: Assigning the return value of new by reference is deprecated in …….. | 把"&" 移掉 |
| Warning: preg_match() [function.preg-match]: Empty regular expression in……. | patten的前後要用『/』包起來 |
| Warning: preg_split() [function.preg-split]: Delimiter must not be alphanumeric or backslash in……. | 將"\"移掉,若為"\n"換成chr(13) |
| SYSTEM WARNING: preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash | patten的前後要用『/』包起來 |
| SYSTEM WARNING: preg_match() [function.preg-match]: No ending delimiter ‘^’ found | patten的前後要用『/』包起來 |
| SYSTEM WARNING: preg_replace() [function.preg-replace]: No ending delimiter ‘^’ found | patten的前後要用『/』包起來 |
| Warning: preg_replace() [function.preg-replace]: No ending delimiter ‘/’ found in D:\www\mantis118_new\core\string_api.php on line 464 | patten的後面要用『/』包起來 |
| SYSTEM WARNING: preg_split() [function.preg-split]: Empty regular expression | patten的前後要用『/』包起來 |
| SYSTEM WARNING: preg_match() [function.preg-match]: Unknown modifier ‘/’ | patten若是使用類似http://的雙斜線 要寫成 http:\/\/ |
| Function magic_quotes_runtime() is deprecated in | 改使用 ini_set(‘magic_quotes_runtime’, 0) |










