skip to Main Content

Hi all I have a question with a obsolete/deprecated function.

I need to change ereg to preg_match

the code with the function is this:

I tired to change ereg to preg_match but it doesn’t work by just changing the name of the function.



  1. You need to change :

    function tep_sanitize_string($string) {
            $string = ereg_replace(' +', ' ', trim($string));
            return preg_replace("/[<>]/", '_', $string);


    function tep_sanitize_string($string) {
            $string = preg_replace('{ +}', ' ', trim($string));
            return preg_replace("/[<>]/", '_', $string);

    There are also many other ereg_replace calls that you might find:

    ereg_replace('2037' . '$', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037)));
    ereg_replace('"', ' ', $pieces[$k]);
    ereg_replace('(' . implode('|', $from) . ')', $to, $string);
    ereg_replace('[^0-9]', '', $number);
    ereg_replace('-language', '-' . $languages[$j]['directory'], $cached_file);
    ereg_replace('(' . implode('|', $from) . ')', $to, $string);
    ereg_replace('-language', '-' . $language, $cache_blocks[$i]['file']);
    ereg_replace(",n$", '', $schema);
    ereg_replace("n#", "n".'#', $row);
    ereg_replace(', $', '', $schema);

    You should change these to

    preg_replace('{2037z}', $year, date(DATE_FORMAT, mktime($hour, $minute, $second, $month, $day, 2037)));
    str_replace('"', ' ', $pieces[$k]);
    preg_replace('{(' . implode('|', $from) . ')}', $to, $string);
    preg_replace('{D}', '', $number);
    str_replace('-language', '-' . $languages[$j]['directory'], $cached_file);
    str_replace('-language', '-' . $language, $cache_blocks[$i]['file']);
    preg_replace("{,nz}", '', $schema);
    preg_replace("{n#}", "n".'#', $row);
    preg_replace('{, z}', '', $schema);

    Hope this is what you want

    EDIT :

    There is only one change:

    ereg('RegExp', $x $y);


    preg_match('/RegExp/', $x $y);

    Same for “ereg_replace”

    ereg_replace('RegExp', $x, $y);


    preg_replace('/RegExp/', $x, $y);

    Hope you get it.


    Also the split is depreciated . You should change:

    $pieces = split('[[:space:]]+', $search_str);


    $pieces = preg_split("/[s,]+/", $search_str);

    Hope these things helps you

    Login or Signup to reply.
  2. in addition to those outlined above, there is also eregi that must be updated, which is just a case insensitive version of ereg. So, replace it with the preg_match and the ‘i’ switch to make it case insensitive.

    Change eregi

    eregi(‘RegExp’, $x)

    to preg_match (note the “i” after the second /)

    preg_match(‘/RegExp/i’, $x)

    Login or Signup to reply.
  3. The new version of oscommerce has changed eregi to preg_match

    eregi('eregi data here ', $x)
    preg_match('/here your eregi data/', $x)
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top