要让ECShop适应PHP7并解决报错问题,需要进行一些代码修改和调整。以下是一些常见的修改方法和步骤:
1. 修改 mysql_*
函数为 mysqli_*
函数
PHP7 已经移除了 mysql_*
函数,因此需要将代码中的 mysql_*
函数替换为 mysqli_*
函数。
例如:
// 原代码$link = mysql_connect('localhost', 'user', 'password');mysql_select_db('database', $link);// 修改后$link = mysqli_connect('localhost', 'user', 'password', 'database');
2. 修改 ereg
函数为 preg_match
PHP7 移除了 ereg
函数,需要使用 preg_match
函数来替代。
例如:
// 原代码if (ereg('^[0-9]+$', $input)) { // do something}// 修改后if (preg_match('/^[0-9]+$/', $input)) { // do something}
3. 修改 split
函数为 explode
或 preg_split
PHP7 移除了 split
函数,可以使用 explode
或 preg_split
来替代。
例如:
// 原代码$array = split(':', 'a:b:c');// 修改后$array = explode(':', 'a:b:c');
4. 修改 session_register
和 session_unregister
函数
PHP7 移除了 session_register
和 session_unregister
函数,直接使用 $_SESSION
数组来操作。
例如:
// 原代码session_register('username');// 修改后$_SESSION['username'] = $username;
5. 修改 create_function
为匿名函数
PHP7 中 create_function
已经被弃用,建议使用匿名函数来替代。
例如:
// 原代码$func = create_function('$a, $b', 'return $a + $b;');// 修改后$func = function($a, $b) { return $a + $b;};
6. 修改 each
函数
PHP7 中 each
函数已经被弃用,可以使用 foreach
来替代。
例如:
// 原代码while (list($key, $value) = each($array)) { // do something}// 修改后foreach ($array as $key => $value) { // do something}
7. 修改 __autoload
为 spl_autoload_register
PHP7 中 __autoload
已经被弃用,建议使用 spl_autoload_register
来替代。
例如:
// 原代码function __autoload($class) { include 'classes/' . $class . '.class.php';}// 修改后spl_autoload_register(function ($class) { include 'classes/' . $class . '.class.php';});
8. 修改 set_magic_quotes_runtime
函数
PHP7 中 set_magic_quotes_runtime
已经被移除,可以直接删除相关代码。
例如:
// 原代码set_magic_quotes_runtime(0);// 修改后// 直接删除或注释掉
9. 修改 mcrypt
函数
PHP7 中 mcrypt
扩展已经被移除,建议使用 openssl
或其他加密库来替代。
例如:
// 原代码$encrypted = mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $key, $data, MCRYPT_MODE_CBC, $iv);// 修改后$encrypted = openssl_encrypt($data, 'AES-128-CBC', $key, OPENSSL_RAW_DATA, $iv);
10. 修改 ereg_replace
函数为 preg_replace
PHP7 中 ereg_replace
已经被移除,需要使用 preg_replace
来替代。
例如:
// 原代码$result = ereg_replace('[0-9]', '', $input);// 修改后$result = preg_replace('/[0-9]/', '', $input);
本文关键词: ecshop 应在 PHP7 修改 方法 解决
希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 iCMS, LeCMS, ClassCMS, Fastadmin, PbootCMS, PHPCMS, 易优CMS, YzmCMS, 讯睿CMS, 极致CMS, Wordpress, HkCMS, YznCMS, WellCMS, ThinkCMF, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。