Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace_callback instead in

Тема в разделе "Cs-cart", создана пользователем afsun, 17 фев 2018.

  1. afsun

    afsun Создатель

    Регистр.:
    6 дек 2012
    Сообщения:
    43
    Симпатии:
    4
    Ругается на
    Deprecated
    : preg_replace:)( The /e modifier is deprecated, use preg_replace_callback instead in /app/addons/news_and_emails/func.php on line 397


    Код
    PHP:
    function fn_rewrite_links($body_html$newsletter_id$campaign_id)
    {
        
    $regex "/href=('|\")((?:http|ftp|https:(\/\/[\w-\.]+[?]?[-\w:\+?\/?\.\=%&;~\[\]]+)/ie";
        
    $url fn_url('newsletters.track''C''http');
        
    $replace_regex '"href=\\1$url&link=" . fn_register_link("\\2", $newsletter_id, $campaign_id) . "-" . $newsletter_id . "-" . $campaign_id';
        
    $matches = array();
        
    $body_html preg_replace($regex$replace_regex$body_html);

        return 
    $body_html;
    }
    line 397 $body_html = preg_replace($regex, $replace_regex, $body_html);
     
    Последнее редактирование: 17 фев 2018
  2. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.609
    Симпатии:
    1.538
    Откатится на более старую версию php
    т.е. надо версию PHP ниже PHP 5.5.0

    и мигрировать на более новую версию Cs-cart, вроде бы с 4.3.7 поддерживается PHP 7. Но по хорошему для магазина надо бы держать последнюю версию скрипта из-за патчей безопасности.
     
  3. afsun

    afsun Создатель

    Регистр.:
    6 дек 2012
    Сообщения:
    43
    Симпатии:
    4
    В том и проблема. с 7-й не стартанул у меня уже мултивендор 4.2.2 выше 5.5 конечно сейчас стоит - но увы не хочется откатываться
     
  4. afsun

    afsun Создатель

    Регистр.:
    6 дек 2012
    Сообщения:
    43
    Симпатии:
    4
    Кто поможет с этим кодом?
    Код:
    function fn_rewrite_links($body_html, $newsletter_id, $campaign_id)
    {
        $regex = "/href=('|\")((?:http|ftp|https):\/\/[\w-\.]+[?]?[-\w:\+?\/?\.\=%&;~\[\]]+)/ie";
        $url = fn_url('newsletters.track', 'C', 'http');
        $replace_regex = '"href=\\1$url&link=" . fn_register_link("\\2", $newsletter_id, $campaign_id) . "-" . $newsletter_id . "-" . $campaign_id';
        $matches = array();
        $body_html = preg_replace($regex, $replace_regex, $body_html);
    
        return $body_html;
    }
    Исправить на preg_replace_callback