За последние 24 часа нас посетили 19255 программистов и 1892 робота. Сейчас ищут 800 программистов ...

PEAR BBCode

Тема в разделе "Прочие вопросы по PHP", создана пользователем artoodetoo, 26 дек 2012.

  1. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.249
    Адрес:
    там-сям
    Пробую в действии "стандартный" парсер форумных ббкодов из поставки pear.
    Мои тестовые условия: Windows 7 Home 64bit, PHP 5.3.13 64bit, pear установлен, пути прописаны.
    Замечание: если у вас при установке/снесении пиров возникают проблемы, первое что надо попробовать — почистить кеш pear, т.е. удалить там все файлы. У меня кеш по адресу C:\tmp\pear\cache\


    Код (Text):
    1. C:\php5> pear search bbcode
    2. Retrieving data...0%
    3. ..MATCHED PACKAGES, CHANNEL PEAR.PHP.NET:
    4. =======================================
    5. PACKAGE            STABLE/(LATEST) LOCAL
    6. HTML_BBCodeParser  1.2.4 (stable)        This is a parser to replace UBB style tags with their html equivalents.
    7. HTML_BBCodeParser2 0.1.0 (beta)    0.1.0 A PHP5 replacement for HTML_BBCodeParser. This is a parser to replace UBB style tags with their html equivalen
    8. ts.
    9. Text_Wiki_BBCode   0.0.4 (alpha)         BBCode parser for Text_Wiki
    Как видим, есть два подходящих пира. Сначала я поставил тот, который stable. Хотя на его родной страничке написано:
    Поехали:
    pear install HTML_BBCodeParser
    Как оказалось предупреждение написано не зря, потому что при некоторых условиях он вызывает ошибки типа "обращение к нестатик методу как к статик" и еще какие-то, я не запомнил. На офф. странице написано про 7 открытых ошибок, некоторые из них с 2006 года не закрыты. Так что…

    Сносим и ставим другое расширение:
    pear uninstall HTML_BBCodeParser
    pear install HTML_BBCodeParser2 — не работает. тут понадобится немного колдовства, т.к. у этого пира нет стабильной версии, придется указать полный путь:
    pear install channel://pear.php.net/HTML_BBCodeParser2-0.1.0 — вот так поставилось.

    Хм. Старая версия deprecated, а новая еще beta. Не очень хороший расклад! Ладно, проверим как оно будет работать. В комплекте с этим пиром есть "тренировочный" файл example/parser.php. Смотрим:
    [​IMG]
    Первое, что бросается в глаза — они текст передают как GET параметр. :( no comments
    Кстати, при открытии страницы вылазит Notice: Undefined index, таких косячков от профи никак не ожидаешь!
    Второе, переводы строки не обрабатываются! Я чувствую себя идиотом, но не могу найти как заставить этот парсер вставлять <br> или <p> на переводах строк. Искал в описаниях, в исходниках — кажется оно не умеет этого делать. А все форумы умеют.

    Вот и ответ почему данное расширение нигде не используется.
     
  2. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Имхо, надо делать на js, посимвольно перебирая тексты.
     
  3. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768