Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> preg_replace - problem z bbcode
deha21
post
Post #1





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Potrzebuję zrobić cytowanie w komentarzach na mojej stronie. Mam taką funkcję, którą przekopiowałem z innego mojego serwisu:
  1. function conv($str) {
  2.  
  3. $str=stripslashes(preg_replace('{(https?:\/\/[a-zA-Z0-9.$&=+_\-\/@ąćęłńóśżź][^\n\s]*)}','<a href="$1">$1</a> ',$str));
  4.  
  5. $patern="#\[quote=([^\]]*)\]#i";
  6. $replace='<div class="quote"><span>\\1:</span>';
  7. $str=preg_replace($patern, $replace, $str);
  8.  
  9. $patern="#([^\[]*)\[/quote\]#i";
  10. $replace='\\1</div>';
  11. $str=preg_replace($patern, $replace, $str);
  12.  
  13. echo '<p>',nl2br($str),'</p>';
  14.  
  15. }

Wszystko się robi ale zamiast tekstu w <p>bla bla bla</p> mam:
  1. <p></p>
  2. bla bla bla
  3. <p></p>

Dlaczego tak się dzieje? Uprzedzę pytania - w kodzie html na pewno mam wszystko ok (nie ma niedomkniętych znaczników itd.)

Ten post edytował deha21 6.12.2012, 19:52:19
Go to the top of the page
+Quote Post
cudny
post
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


Wyświetl:

  1. echo '<p>',htmlspecialchars( nl2br($str) ),'</p>';


Założę się, że jest tam <div> lub <p>
Go to the top of the page
+Quote Post
deha21
post
Post #3





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Cytat(cudny @ 6.12.2012, 23:15:26 ) *
Założę się, że jest tam <div> lub <p>

Tak, w środku jest <div> ale jest domknięty to chyba nie powinno mieć znaczenia? O to chodzi że chce z [ quote=xxx ] tekst [ /quote ] zrobić żeby się wyświetlało <div class="quote"><span>napisal</span>tekst</div>
Dlatego też nie mogę użyć htmlspecialchars bo mi zamieni znaczniki na tekst.

Ten post edytował deha21 7.12.2012, 10:23:06
Go to the top of the page
+Quote Post
cudny
post
Post #4





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

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


właśnie po to chciałem żebyś pokazał mi co jest wewnątrz paragrafów.
Poczytaj o specyfikacji html i tym co można zagnieżdżać wewnątrz paragrafów, bo na pewno nie bloki <div> stąd wywala Ci <p> w kosmos.
Go to the top of the page
+Quote Post
deha21
post
Post #5





Grupa: Zarejestrowani
Postów: 544
Pomógł: 5
Dołączył: 18.08.2009

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


Hmm rzeczywiscie. Wiem, że divów nie powinno się w <p> umieszczać ale myślałem, że nie rozwali kody - najwyżej nie przejdzie walidacji. Zmieniłem na <span> i działa.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 20:29