1

Тема: Заработает ли сборка s2-dev-r1713 на PHP 5.4

Хостер решил обновить оборудование и заодно переехать на новую версию PHP 5.4.
Собственно, вопрос: будет ли работать?

2

Re: Заработает ли сборка s2-dev-r1713 на PHP 5.4

Конечно.

В зависимости от настроек PHP могут быть предупреждения про часовые пояса. Тогда надо будет добавить в config.php функцию выбора часового пояса.

3

Re: Заработает ли сборка s2-dev-r1713 на PHP 5.4

Очень хорошо! Обновил, всё работает.

28.06.2014 12:02:57. Текст был изменен (boo).

4

Re: Заработает ли сборка s2-dev-r1713 на PHP 5.4

boo пишет:

Очень хорошо! Обновил, всё работает.

У меня выскакивали ошибки после комментариев. Решается заменой preg_replace() с флагом "e" на preg_replace_callback():

// Строка ~230-240, файл _include/comments.php
function s2_bbcode_to_html ($s)
{
    global $lang_common;

    // Надо создать анонимную функцию
    $callback = function ($m) {
        $link = $m[1];
        
        $long  = utf8_strlen($m[1]) > 55;
        $short = ($long ? utf8_substr($m[1], 0 , 42) . ' … ' . utf8_substr($m[1], -10) : $m[1]);
        
        return "<noindex><a href=\"$link\" rel=\"nofollow\">$short</a></noindex>";
    };

    $s = str_replace("''", '"', $s);
    $s = str_replace("\r", '', $s);

    $s = preg_replace('#\[I\](.*?)\[/I\]#isS', '<em>\1</em>', $s);
    $s = preg_replace('#\[B\](.*?)\[/B\]#isS', '<strong>\1</strong>', $s);

    while (preg_match ('/\[Q\s*=\s*([^\]]*)\].*?\[\/Q\]/isS', $s))
        $s = preg_replace('/\s*\[Q\s*=\s*([^\]]*)\]\s*(.*?)\s*\[\/Q\]\s*/isS', '<blockquote><strong>\\1</strong> '.$lang_common['Wrote'].'<br/><br/><em>\\2</em></blockquote>', $s);

    while (preg_match ('/\[Q\].*?\[\/Q\]/isS', $s))
        $s = preg_replace('/\s*\[Q\]\s*(.*?)\s*\[\/Q\]\s*/isS', '<blockquote>\\1</blockquote>', $s);
    
    // И вот тут надо поменять второй аргумент и убрать флаг 'e'
    $s = preg_replace_callback('#(https?://\S{2,}?)(?=[\s\),\'\><\]]|&lt;|&gt;|[\.;:](?:\s|$)|$)#u', $callback, $s);
    $s = str_replace("\n", '<br />', $s);
    return $s;
}

Надеюсь это вам поможет.

13.11.2014 03:42:26. Текст был изменен (volter9).

5

Re: Заработает ли сборка s2-dev-r1713 на PHP 5.4

Убрал флаг "e":
http://s2cms.ru/trac/changeset/1723
https://github.com/parpalak/s2/commit/d … a5c7343e1b