Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] BBcode - listowanie kodu
Hubson
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 31.12.2006
Skąd: Warszawka

Ostrzeżenie: (0%)
-----


Opracowuję sobie BBcode na stronę. Wszystko robię przy pomocy funkcji preg_replace() i tak doszedłem do znacznika [ code ][/ code ]. Postanowiłem, że kod będę wyświetlał przy pomocy listy numerowanej <ol></ol>, każdą linijkę oddzielnie pomiędzy <li><code>, a </code></li>. Przy tym ostatnim pojawił się problem, gdyż nijak nie mogę zastosować na atomie (zwracanym wewnątrz funkcji preg_replace()) instrukcji listowania, która zamienia każdy wiersz na <li><code>{zawartość}</code></li>.

  1. <?php
  2. function wylistuj( $char, $string, $open, $close ) {
  3. $explode = explode( $char, stripslashes($string) );
  4. $count = count($explode);
  5. $list='';
  6. for( $x=0;$x<$count;$x++ ) {
  7. $list .= $open.$explode[$x].$close.'
  8. ';
  9. }
  10. return $list;
  11. }
  12.  
  13. function bbcode($string) {
  14. $tekst = htmlspecialchars(stripslashes( $string ));
  15. $tekst = preg_replace("#[ code ](.*?)[/ code ]#", '<ol>'.wylistuj("\n", nl2br('1'), '<li><code>', '</code</li>').'</ol>', $tekst);
  16. return $tekst;
  17. }
  18. ?>


Ten post edytował Hubson 5.08.2008, 22:18:44


--------------------
Prison Break - Skazany na śmierć
Go to the top of the page
+Quote Post
SHiP
post
Post #2





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Tak się nie wywołuje funkcji ;]

preg_replace_callback" title="Zobacz w manualu PHP" target="_manual


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
Hubson
post
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 31.12.2006
Skąd: Warszawka

Ostrzeżenie: (0%)
-----


Wiem. Prezentuję jedynie fragment kodu.

Odnośnie podanej przez Ciebie funkcji - słyszałem o niej, ale nie umiem z niej skorzystać, jeżeli mógłbyś mnie poinstruować byłbym niemal dozgonnie wdzięczny smile.gif.

Ten post edytował Hubson 5.08.2008, 22:30:43


--------------------
Prison Break - Skazany na śmierć
Go to the top of the page
+Quote Post
SHiP
post
Post #4





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Preg_replace_callback nie podmienia sam paramerow a zwraca wyszukane rzeczy do innej funkcji, Ta juz dezyduje co ze znalezionymi rzeczami robić winksmiley.jpg.
Przyklad(pisany z glowy), moga byc jakies literowki
  1. <?php
  2.  
  3. function moja($matches)
  4. {
  5. echo 'znalezione rzeczy:';
  6. print_r($matches)
  7. return 'ten kod zostanie wstawiony do zmiennej $tekst';
  8. }
  9.  
  10.  
  11. function bbcode($string) {
  12. $tekst = htmlspecialchars(stripslashes( $string ));
  13. "#[ code ](.*?)[/ code ]#",
  14. "moja",
  15. $tekst);
  16.  
  17. return $tekst;
  18. }
  19. ?>


Ten post edytował SHiP 5.08.2008, 22:47:44


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post
Hubson
post
Post #5





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 31.12.2006
Skąd: Warszawka

Ostrzeżenie: (0%)
-----


OK, ale jak teraz skorzystać z wyników, które są print_r'owane przez funkcję moja()?


--------------------
Prison Break - Skazany na śmierć
Go to the top of the page
+Quote Post
SHiP
post
Post #6





Grupa: Zarejestrowani
Postów: 697
Pomógł: 47
Dołączył: 19.12.2003
Skąd: Lublin

Ostrzeżenie: (0%)
-----


Zwracasz co Ci trzeba po przez return i dziala winksmiley.jpg


--------------------
Warsztat: Kubuntu, PhpStorm, Opera
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 14:56