Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: obsługa tekstu zawartego w znacznikach bbcode
Forum PHP.pl > Forum > PHP
tara
Witam,

Muszę zrobić funkcję która rozdzieli ciąg zawarty między tagami i odpowiednio użyje. Chodzi mi o takie coś:

Cytat
[obrazek]1.2.left[/obrazek]


Aby po wyciągnięciu z tagów wyglądało tak:

Kod
<a href="obrazek.php?obraz=1" style="float: left";>


Czyli muszę wyciągnąć tekst zawarty między [obrazek] i [/obrazek], użyć explode i wsadzić do szablonu linka. Tylko jest problem. Jeśli mam tekst

Cytat
aaaaaa [obrazek]1.2.left[/obrazek] eeeeee


To po wyciągnieciu ze znaczników u użycia explode wyjdzie mi takie coś:
Cytat
aaaaaa 1

Cytat
2

Cytat
2left eeeeeeee


i z tym już nic nie poradze. Ma ktoś pomysł jak zrobić tak, aby już w tagach podmienić tekst ?
strife
Od razu mówię, że jestem jeśli chodzi o wyrażenia regularne. To co napisałem powinno działać ...

  1. <?php
  2.  
  3. $string = 'aaaaaa [obrazek]1.2.left[/obrazek] eeeeee
  4.            Lorem [obrazek]2.nazwa_obrazka.right[/obrazek] Lipsum
  5.            ';
  6.  
  7. $p = preg_match_all( "#[obrazek]([a-zA-Z0-9_.]+)[/obrazek]#is", $string, $out );
  8.  
  9. foreach ( $out[1] as $p )
  10. {
  11.     $a = explode( ".", $p );
  12.     echo '<a href="obrazek.php?obraz=' . $a[0] . '" style="float: ' . $a[2] . '">' . $a[1] . '</a>';
  13.     echo "<br />n";
  14. }
  15. ?>


Ale gwarancji nie daję, że się nie wychaczy później tongue.gif

@tara - Tej emotki nie wybierałem przypadkiem, po prostu nie znam się na regexp'ach za dobrze dlatego tak napisałem - że się wychaczy biggrin.gif
tara
strife, super działa. biggrin.gif Dzieki wielkie. Co masz na myśli o wyhaczeniu ? że padnie ? winksmiley.jpg
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.