Function eregi() is deprecated
Function eregi() is deprecated és
Function ereg_replace() is deprecated
Amennyiben ismerős a címben jelzett hibaüzenet, akkor valószínűleg PHP 5.3 vagy újabb verzión futtatjuk a webáruházat, így jelzi, hogy ezek elavult PHP függvények, szükséges a mielőbbi csere.
Ahol javítani kell:
1. includes/classes/languages.php 87.sorában keressük meg ezt:
if (eregi('^(' . $value . ')(;q=[0-9]\\.[0-9])?$',
$this->browser_languages[$i]) && isset($this->catalog_languages[$key])) {
$this->language = $this->catalog_languages[$key];
Erre cseréljük le:
if (preg_match('/^(' . $value . ')(;q=[0-9]\\.[0-9])?$/i',
$this->browser_languages[$i]) && isset($this->catalog_languages[$key])) {
$this->language = $this->catalog_languages[$key];
2. includes/classes/seo.class.php keressük meg ezt:
$anchor = ereg_replace($pattern, '', mb_convert_case($string, MB_CASE_LOWER, "utf-8"));
$pattern = "([[:space:]]|[[:blank:]])+";
$anchor = ereg_replace($pattern, '-', $anchor);
Erre cseréljük le:
$anchor = preg_replace('/'.$pattern.'/', '', mb_convert_case($string, MB_CASE_LOWER, "utf-8"));
$pattern = "([[:space:]]|[[:blank:]])+";
$anchor = preg_replace('/'.$pattern.'/', '-', $anchor);
Ennyi az egész. Sok sikert és jó munkát.
Módosítás: mint kiderült rendeteg helyen kell módosítani az új php verzió miatt,
ezért a fentiek inkább csak például szolgáljanak, hogyan kell megoldani a hiba elhárítását régebbi verzióknál.
(Régi verziónak számít az 2.2RC2a és minden ezelőtti verzió.)
-
2011-01-03 08:43:16 |217.27.219.xxx| Várkondi László - re: köszönetMIsi írta:Köszönet a cikkért!
Nemrég kezdtem tanulni a PHP-t és nem is tudtam, hogy a eregi ilyen elavult fv.Szívesen!
Azért annyira nem kell aggódni, a legtöbb szerveren egyelőre PHP 5.2 vagy régebbi verzió van, illetve több PHP verzió közül lehet választani és át lehet váltani a tárhelyet 5.2-re egy kattintással. (Pl. Médiacenter)
Ez a hibaüzenet valójában csak egy figyelmeztetés, ami azt jelenti hogy ezek a függvények a következő PHP verziókban már nem fognak működni.Egy kis olvasnivaló az elavult PHP függvényekről: http://php.net/manual/en/migration53.deprecated.php
Az application_top.php fájlban ki is kapcsolhatod a figyelmeztetést:
E helyett:Kód:error_reporting(E_ALL & ~E_NOTICE);
Ezt írod be:Kód:error_reporting(E_ALL ^ E_DEPRECATED);
Módosítás: ( 2010. február 13. szombat, 13:08 )



Köszönet a cikkért!
Nemrég kezdtem tanulni a PHP-t és nem is tudtam, hogy a eregi ilyen elavult fv.