Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]highlight_string między znacznikami
Forum PHP.pl > Forum > Przedszkole
kacpero1094
Co zrobić, żeby funkcja hightlight_string, była używana tylko między znacznikami <code></code>?
Funkcja, która u mnie zamienia BBCode na HTML to:
  1. <?php
  2. function replace($text) {
  3. $text=htmlspecialchars($text);
  4. $text = nl2br($text);
  5. $text = preg_replace("#(.*?)#si",'<b>1</b>',$text);
  6. $text = preg_replace("#(.*?)#si",'<i>1</i>',$text);
  7. $text = preg_replace("#(.*?)#si",'<u>1</u>',$text);
  8. $text = preg_replace("#[img](.*?)[/img]#si",'<img src="1" alt="Kacper Kołodziej">',$text);
  9. $text = preg_replace("#[link=(http.*?)](.*?)[/link]#si",'<a target="_blank" href="1">2</a>',$text);
  10. $text = preg_replace("#[link=(.*?)](.*?)[/link]#si",'<a target="_blank" href="http://1">2</a>',$text);
  11. $text = preg_replace("#[url=(.*?)](.*?)[/link]#si",'<a target="_blank" href="http://1">2</a>',$text);
  12. $text = preg_replace("#(.*?)#si",'<a target="_blank" href="1">1</a>', $text);
  13. $text = preg_replace("#[link](.*?)#si",'<a target="_blank" href="http://1">1</a>', $text);
  14. $text = preg_replace("#[link](http.*?)[/url]#si",'<a target="_blank" href="1">1</a>', $text);
  15. $text = preg_replace("#[h2](.*?)[/h2]#si",'<h2>1</h2>',$text);
  16. $text = preg_replace("#[h1](.*?)[/h1]#si",'<h1>1</h1>',$text);
  17. $text = preg_replace("#[link](http.*?)[/link]#si",'<a href="1">1</a>',$text);
  18. $text = preg_replace("#[link](.*?)[/link]#si",'<a target="_blank" href="http://1">1</a>',$text);
  19. $text = preg_replace("#[code](.*?)[/code]#si",'<code>' . highlight_string('1') . '</code>',$text);
  20. }
  21. ?>
TrevorGryffits
A moze preg_replace_callback?
Skie
Pobierz tekst z pomiędzy tych znaczników za pomocą preg_match_all() i wywołaj na tym wybraną przez Ciebie funkcję. Potem zamieniaj pierwotnie pobrany tekst na tekst "przeżuty" przez funkcję i podmień go używając preg_replace()
kacpero1094
można prosić o przykład?
nie bardzo rozumiem o co chodzi w funkcji preg_match_all()
Pawel_W
preg_match_all to to samo co preg_match, tyle że preg_match zatrzymuje się przy pierwszym trafieniu a ~all szuka dalej winksmiley.jpg

obie funkcje zwracają tablice w elementami pasującymi do wzorca
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.