Tárhelyszolgáltatónk

Mala & Társa Webrendszerek Kft. - Tárhely szolgáltató

Twitteren vagyunk

osCommerce - Magyarország a Twitteren

Névnap
Ma 2012. február 10., péntek, Elvira napja van. Holnap Bertold és Marietta napja lesz.
Kövess a Facebookon.
Joomla Templates and Joomla Extensions by JoomlaVision.Com
Címlap Hibák és elhárításuk Function eregi() is deprecated

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ó.)

Hozzászólások (2)
  • MIsi  - köszönet

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

  • Várkondi László  - re: köszönet
    MIsi í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);
Hozzászólást csak Regisztrált felhasználó írhat!

Módosítás: ( 2010. február 13. szombat, 13:08 )