php5 3不支援eregi 函式了

2021-08-30 22:48:57 字數 1961 閱讀 1988

寫正則的時候可能會碰到用ereg()時出現錯誤,如:deprecated: function eregi() is deprecated ××××××××,原因就是php5.3已經不支援ereg(),可以用preg_match() i 引數替代,比如:ereg(「^[[:alnum:]]+$」, $pass); ——> preg_match(「/^[[:alnum:]]+$/i」, $pass);

以下是詳細說明:

php 5.3 從一方面來講,可以說在07年計畫php6的中的乙個pre版本,增加了很多功能,統一了很多語法,使php變得更加強大與簡潔。

說到統計架構規劃,php當然會對一些別名,重複功能function進行歸類整理,並把一些不用的正式在php 5.3以後刪除掉.故不建議在新專案繼續使用.

php 5.3 有兩個deprecated,

e_deprecated and e_user_deprecated

以下是在舊的專案中會在php 5.3以後碰到的問題

* define_syslog_variables

* register_globals

* register_long_arrays

* safe_mode

* magic_quotes_gpc

* magic_quotes_runtime

* magic_quotes_sybase

* 在php.ini 注釋用#已經不再建議使用.

deprecated functions:

* call_user_method() 可以用 call_user_func() 替代

* call_user_method_array() 可以用 call_user_func_array() 替代define_syslog_variables()

* dl() 反對在使用dl載入擴充套件,php5.3 以後應用php.ini配製

* ereg() 可以用 preg_match() 替代

* ereg_replace() 可以用 preg_replace() 替代

* eregi() 用 preg_match() i 引數替代

* eregi_replace() 用 preg_replace() i 引數替代

* set_magic_quotes_runtime() 用 magic_quotes_runtime() 替代

* session_register() session_unregister() session_is_registered()

* 以上三個統一用 $_session 替代

* set_socket_blocking() 用 stream_set_blocking() 替代

* split() 用 preg_split() 替代

* spliti() 用 preg_split() 模式 『i』 替代

* sql_regcase()

* mysql_db_query() 用 mysql_select_db() mysql_query() 替代mysql_escape_string() 用 use mysql_real_escape_string() 替代

* 關於時區處理,統一用timezone對像

deprecated features:

* 直接返加new 例項不再建議使用. php 6 將不再支援

* call-time pass-by-reference 引數現在不再建議使用 php 6 將不再支援

* 用 {} 訪問字串順序不再建議使用. 統一用 代替. php 6 將不再支援

當然如果專案緊急,又要在php 5.3 使用以上方法,可以用下面的方法去做

在php.ini 增加

vim /etc/php.ini

php_flag allow_call_time_pass_reference on

php_value error_reporting 「e_all & ~e_notice & ~e_deprecated」

php5 3 廢棄函式小結

在php5.3被放棄的函式有 ereg 直接用mb ereg代替,或是p代替,但是匹配規則需要用 包括起來 eregi preg match代替,在規則後加上i,如 preg match 程式設計客棧 file ereg replace set magic quotes runtwww.cppcns...

Mysql中不支援的Oracle函式

最近在更換資料庫,在改sql的時候有些oracle中的函式在mysql中不支援,記錄一下。1.oracle中的nvl 字段,替代值 此函式的意義為如果欄位是null那麼就用替代值代替這個空欄位對應的值 select nvl age,18 as age from user 這裡面如果某個人的age欄位...

Python為什麼不支援函式過載?

在考慮為什麼python不提供函式過載前,我們要研究為什麼需要提供函式過載。在靜態語言中,方法過載是希望類可以以統一的方式處理不同型別的資料提供可能性。多個同名函式同時存在 函式過載主要解決兩個問題 另外,乙個基本的設計原則是,僅僅當兩個函式除了引數型別和引數個數不同以外,其功能是完全相同的,此時才...