1. Мы продолжаем публиковать интересные статьи на тему SocialEngine 4. Одна из статей посвящена правильному выбору сервера для вашей социальной сети, а другая содержит советы по увеличению производительности платформы. Также мы добавили большую статью о пользовательских уровнях. Ознакомиться со статьями вы можете в разделе Вопросы и Ответы SocialEngine 4.
  2. Вам кажется, что ваша версия SocialEngine 4, работает медленно?

    Голосуйте. Пишите свою версию системы, железо на чем работает и количество пользователей. Будем увеличивать производительность :-) Подробнее

  3. В связи с участившимися случаями попыток продажи пользователями форума различных "сборок" коммерческих социальных платформ, обычно основанных на SocialEngine 3, вводится новое правило для форума. Запрещается создание тем или размещение в уже созданных предложений о продаже или размещение ссылок на сайты, где происходит продажа "сборок". Пользователи, которые продолжат свою коммерческую деятельность в данном направлении, будут заблокированы. Подробнее.
  4. Мы рады сообщить о выходе первого российского продукта для платформы phpFox 2-3. Продукт Interkassa-Sprypay Gateway Payment, позволит вам начать прием платежей в России без особых проблем. Зарабатывайте на платных подарках или получайте доходы с платной рекламы как на Facebook. Продукт работает со всеми модулями, которые используют платежные шлюзы.

    Все подробности о продукте в этой теме.

phpFox и UTF-8

Discussion in 'Хаки - Haks' started by steelcat, Mar 30, 2011.

  1. steelcat Thread starter Novice member


    Offline
    Message Count:
    28
    Likes Received:
    0
    phpFox криво работает с русскими буквами? Вас это достало? Ну что ж, пришло время засучить рукава и пропесочить этот насквозь прогнивший код. Почему прогнивший? Покажу на одном примере. Функция public function shorten($html, $maxLength, $sSuffix = null, $bHide = false) в файле public_html/include/library/phpfox/parse/output.class.php отвечает за обрезку данных при выводе содержимого блога, поста на форуме и так далее. И вот на определенном этапе возникает кракозябра вида: error.gif . Ага, смотрим код, видим что собака порылась в уже указанном нами файле в функции shorten. Но что же там не так? Ответ на этот вопрос даст простой поисковый запрос в гугле "php функции некорректно работающие с utf-8". Читаем и ужасаемся, код phpfox насквозь пронизан функциями, которые в принципе не должны работать корректно с кириллицей.
    Так как читка всего кода движка занятие ну очень долгое и не входит в формат поста на форуме, то просто пофиксим функцию shorten, без комментариев. :)

    1. Ищем:
    PHP:
    $str substr($html$position$tagPosition $position);
    и меняем на:
    PHP:
    $str mb_substr($html$position$tagPosition $position,'UTF-8');
    2. Ищем:
    PHP:
    $sNewString .= substr($str0$maxLength $printedLength);
    и меняем на:
    PHP:
    $sNewString .= mb_substr($str0$maxLength $printedLength,'UTF-8');
    3. Ищем:
    PHP:
    $sNewString .= substr($html$position$maxLength $printedLength);
    и меняем на:
    PHP:
    $sNewString .= mb_substr($html$position$maxLength $printedLength,'UTF-8');
    Вуаля, получаем НОРМАЛЬНУЮ обрезку текста на сайте:
    fix.gif

    А теперь вопрос: "О, сколько нам открытий чудных готовит phpFox-а код?" ;)
  2. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Что-от не понял, если там
    , то смысл мультиязычности и вообще utf-8? =) Ещё один минус в копилку разработчиков.

    Не, где же это нормально... Нормально это по словам (например по последнему пробелу), а это просто обрезание без багов. :)
  3. SpartakuS User


    Offline
    • Знаменитый
    Message Count:
    797
    Likes Received:
    82
    steelcat, во, в пыхе немного шаришь. А в поиске нет :)
    Или это не в паблике?)
  4. Red Rabbit Tough member


    Offline
    Message Count:
    898
    Likes Received:
    193
    Что? Где? :)
  5. steelcat Thread starter Novice member


    Offline
    Message Count:
    28
    Likes Received:
    0
    Понять Вас сложнее, чем разобраться в коде движка.
  6. jumuro User


    Offline
    Message Count:
    27
    Likes Received:
    0
    как же сделать нормально обрезание по пробелу?
  7. bennington111 Banned


    Offline
    • Banned
    Message Count:
    502
    Likes Received:
    225
    Вот наглядный пример обрезания текста по последнему пробелу, думаю разберетесь:
    Code:
    <?php
        $string = 'hello world, hello!';
        echo substr($string, 0, strrpos($string, ' ' )); //hello world,
    ?>
    jumuro likes this.
  8. Vanqa Banned


    Offline
    • Banned
    Message Count:
    337
    Likes Received:
    41
    My version of phpFox:
    3.0.0
    Если получилось у кого, выкладывайте пож-ста для общего пользования.

Share This Page

All rights reserved SocEngine.ru ©