parser текста

Тема в разделе "PHP", создана пользователем Christmasnet, 12 май 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. Christmasnet

    Christmasnet

    Регистр.:
    20 окт 2008
    Сообщения:
    151
    Симпатии:
    54
    столкнулся с проблемой регулярного выражения.
    помогите конвертировать этот текст в bbcode.

    Код:
    <span style="font-size: small; font-family: helvetica;">  текст  </span>
    для выделением текста жирным я нашел такое выражение
    PHP:
    while ( preg_match'/\<span style="font-weight: bold;"([^>]*)\>(.*?)\<\/span\>/is'$txt ) ) {
                    
    $txt preg_replace'/\<span style="font-weight: bold;"([^>]*)\>(.*?)\<\/span\>/is'"[b]\\2[/b]"$txt );
                }
    как сделать подобное выражение?
     
  2. TrojaNFlash

    TrojaNFlash Прохожие

    По аналогии делается очень просто:
    PHP:
    $txt '<span style="font-size: small; font-family: helvetica;">  текст  </span>';
    while (
    preg_match'/\<span style="font-size: small; font-family: helvetica;"([^>]*)\>(.*?)\<\/span\>/is'$txt)) 

        
    $txt preg_replace'/\<span style="font-size: small; font-family: helvetica;"([^>]*)\>(.*?)\<\/span\>/is'"[size=9]\\2[/size]"$txt); 
    }
    echo 
    $txt;
    если нужен готовый парсер:
    http://www.google.com/search?q=php+bbcode+parser
     
  3. pslava

    pslava

    Регистр.:
    16 май 2007
    Сообщения:
    618
    Симпатии:
    122
    Пробуй:
    PHP:
    while ( preg_match'/\<span style="font-size: small; font-family: helvetica;"\>(.*?)\<\/span\>/is'$txt ) ) {
        
    $txt preg_replace'/\<span style="font-size: small; font-family: helvetica;"\>(.*?)\<\/span\>/is'"[small]\\1[/small]"$txt );
                }
     
  4. Christmasnet

    Christmasnet

    Регистр.:
    20 окт 2008
    Сообщения:
    151
    Симпатии:
    54
    По аналогиии сделал вот так

    PHP:
    while ( preg_match'/\<span style="font-size: small;(.*?)font-family: helvetica;"([^>]*)\>(.*?)\<\/span\>/is'$txt ) ) {
                    
    $txt preg_replace'/\<span style="font-size: small;(.*?)font-family: helvetica;"([^>]*)\>(.*?)\<\/span\>/is'"[font=helvetica][size=\\1]\\2[/size][/font]"$txt );
    вот этот момент меня интересует
    PHP:
    [font=helvetica][size=\\2]\\3[/size][/font]
    В предложенных примерах обрабатывается только размер шрифта, а значение самого шрифта (helvetica).

    small == в bbcode 9???
    PHP:
    "[size=9]\\2[/size]"
    ???
     
  5. TrojaNFlash

    TrojaNFlash Прохожие

    не совсем понятна логика, обычно бб код парсят и конвертируют в хтмл.
    разработчик сам задает ббкод и как его интерпритировать
    тега [small] я лично нигде не встречал, [font] довольно редко
     
  6. Christmasnet

    Christmasnet

    Регистр.:
    20 окт 2008
    Сообщения:
    151
    Симпатии:
    54
    я настраиваю стандартный rss импорт на DLE, при парсинге с некоторых сайтов новости не конвертируются в тэги BBCODE, если добавить в parser.class.php нужные регулярные выражения, то все работает. Вот я и остановился на том что не могу слепить регулярное выражение для приведенного выше кода HTML.
     
Статус темы:
Закрыта.