Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: bbcode - double quote
Forum PHP.pl > Forum > PHP
lukaszgolder
Mam funkcje, która zamienia bbcode na znaczniki html i odwrotnie.

Fragment z cytowaniem wygląda tak
  1. <?php
  2. $text = preg_replace("#[quote](.*?)[/quote]#si", "<div class=\"cytat\">1</div>", $text);
  3. ?>


Tylko że sypie się w przypadku kilku krotnego cytowania np:
Kod
[quote]aaaa[quote]bbb[/quote][/quote]


Jak zmienić / poprawić tę funkcje, aby to działało.
erix
Cytat
Tylko że sypie się w przypadku kilku krotnego cytowania np:

A może powiesz, jak się sypie?
lukaszgolder
ze nie zaczyna od środkowego cytatu, tylko od pierwszego z lewej, więc bierze pierwszy quote i wszystko razem z kolejnym quote do pierwszego /quote traktuje jako tekst.

Samo quote już mi działa, ale mógłby mi ktoś pomóc w zrobieniu tak aby działało
Kod
[quote=lukaszgolder]aaa[/quote]


Kod
function parseTagsRecursive($input)
{

    $regex = '#\[quote]((?:[^[]|\[(?!/?quote])|(?R))+)\[/quote]#';

    if (is_array($input)) {
        $input = '<div class="cytat">'.$input[1].'</div>';
    }

    return preg_replace_callback($regex, 'parseTagsRecursive', $input);
}
bim2
wywal pytajnik z wyrażenia regularnego smile.gif
lukaszgolder
Ale to co ja napisałem jest w 100% dobrze. Zalezy mi tylko, aby przerobić tą funkcje aby działało to co ja napisałem i zmienialo na:
  1. <div class="cytat"><span>Tutaj nick</span>tutaj tekst</div>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.