Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Generator bbcode i znaczniki listy
Forum PHP.pl > Forum > Przedszkole
piotrek24
Wygenerowałem sobie skrypt bbcode tylko do tworzenia listy

  1. <?php
  2. Function bbcode($str)
  3. {
  4. $str=htmlspecialchars(trim($str));
  5.  
  6. $str = preg_replace("#
      (.*?)
    #si"
    , "<ul>1</ul>", $str);
  7. $str = preg_replace("#[list=(http://)?(.*?)](.*?)[/list]#si", "<ol type=\"2\">3</ol>", $str);
  8. $str = preg_replace("#[*](.*?)s#si", "<li>1</li>", $str);
  9.  
  10. $str=nl2br($str);
  11.  
  12. return $str;
  13. }
  14.  
  15. $text = '
    • jakis tam sobie punkt pierwszy
  16. jakis tam sobie punkt drugi
  17. ';
  18.  
  19. echo bbcode($text);
  20. ?>
  21. [PHP] pobierz, plaintext


    Problem w tym że otrzymuję taki wynik

    - jakis
    tam sobie punkt pierwszy
    - jakis
    tam sobie punkt drugi

    i taki kod html

    <ul><br />
    <li>efepfpwejg</li>rejge rigoje rog<br />
    <li>ergerg</li>erioghoehr georgh <br />
    </ul>

    Może ktoś pomoże jak rozwiązać ten problem? Znaczniki zamykania punktu wstawia już po pierwszym wyrazie, no i wszędzie wstawia znaczniki nowej linii...
    sniezny_wilk
    nl2br - to dodaje Tobie znaczniki nowej lini. Zmienia \n na <br/>. Niby trim powinno usuwać Tobie \n, ale cytując z manuala: "nl2br — Inserts HTML line breaks before all newlines in a string". Mogę się mylić, ale czy nie chodzi tu, że znak <br/> zostanie dodany do każdej nowej lini, nawet tej która nie posiada \n ? A tekście wprowadzanym masz entery.
    piotrek24
    Tak wiem że ta funkcja wstawia znaczniki nowej linii

    mi bardziej chodzi o to że ten fragment kodu:

    1. <?php
    2. $str = preg_replace("#[*](.*?)s#si", "<li>1</li>", $str);
    3. ?>


    zamienia bbcode:

    [*] jakiś tam sobie text

    na:

    <li>jakiś</li>tam sobie text

    a powinno być

    <li>jakiś tam sobie text</li>
    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.