ShopEx 從PHP5.2到PHP5.3移植
移植中出現(xiàn)的問題:
1、短標(biāo)簽問題
shopex中的一些源文件中使用了短標(biāo)簽,<? ...?>.而在PHP5.3中短標(biāo)簽?zāi)J(rèn)是關(guān)閉的。所以,我們有兩種選擇:一是,把所有出現(xiàn)短標(biāo)簽的地方,修改為<?php ...?>;二是,修改PHP配置文件,使其支持短標(biāo)簽。即: [plain] view plaincopyprint? short_open_tag = On
2、變量引用傳遞問題
PHP5.3中allow_call_time_pass_reference默認(rèn)是關(guān)閉的,如果它是關(guān)閉的話,我們在程序中調(diào)用函數(shù)時,就不能傳遞一個參數(shù)的引用過去。如在mdl_productCat.php中有一段:$result = $this->cat_plan(&$cat_id,&$start,&$count,&$curr,&$total);上面就是傳遞的引用,這樣程序應(yīng)付報(bào)錯:Deprecated: Call-time pass-by-reference has been deprecated...因?yàn)樵趕hopex的原代碼中這種引用傳遞的地方太多了,可以選擇修改配置文件,開啟allow_call_time_pass_reference。即: [plain] view plaincopyprint? allow_call_time_pass_reference = On
3、shopex中的使用的函數(shù)有些在PHP5.3中已經(jīng)被廢棄(DEPRECATED)
這時,我們就要找到替代函數(shù),把那些廢棄的函數(shù)替換掉。
在plugins/widgets/maxrelatedgoodscat/widget_maxrelatedgoodscat.php 文件中就有使用split函數(shù)的地方,此函數(shù)在PHP5.3中已經(jīng)被廢棄,我們可以使用explode來進(jìn)行替換,其它例如preg_split函數(shù)也可以。最主要的是要找到相應(yīng)的替代函數(shù),我們可以通過手冊,或百度來查找。
部分棄用函數(shù)的替代函數(shù):
call_user_method()(使用 call_user_func() 替代)
call_user_method_array() (使用 call_user_func_array() 替代)
define_syslog_variables()
dl()
ereg() (使用 preg_match() 替代)
ereg_replace() (使用 preg_replace() 替代)
eregi() (使用 preg_match() 配合 ‘i’ 修正符替代)
eregi_replace() (使用 preg_replace() 配合 ‘i’ 修正符替代)
set_magic_quotes_runtime() 以及它的別名函數(shù) magic_quotes_runtime()
[color=olive]session_register() (使用 $_SESSION 超全部變量替代)
session_unregister() (使用 $_SESSION 超全部變量替代)
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() (使用 mysql_real_escape_string() 替代)
廢棄以字符串傳遞區(qū)域設(shè)置名稱. 使用 LC_* 系列常量替代.
mktime() 的 is_dst 參數(shù). 使用新的時區(qū)處理函數(shù)替代.
|
新聞熱點(diǎn)
疑難解答
圖片精選