Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]htmlspecialchars i nl2br
Forum PHP.pl > Forum > Przedszkole
Th0e
Witam! Mam problem z zrobieniem "enterów" na stronie. Każdy użytkownik ma na swoim profilu swój własny, opis. Tak wygląda wysyłanie:

  1. $tekst = $_POST['opis'];
  2.  
  3. $tekst = nl2br($tekst);
  4. $tekst = preg_replace('<br />', '[br]', $tekst);
  5.  
  6. $tekst = mysql_real_escape_string($tekst);
  7.  
  8. mysql_query("UPDATE user SET `opis`='$tekst' WHERE `nick`='$nick'");



a tak wyświetlanie:

  1. $tekst = $user['opis'];
  2.  
  3. $tekst = htmlspecialchars($tekst);
  4.  
  5. $tekst = preg_replace("#\[b\](.*?)\[/b\]#si",'<b>\\1</b>',$tekst);
  6. $tekst = preg_replace("#\[i\](.*?)\[/i\]#si",'<i>\\1</i>',$tekst);
  7. $tekst = preg_replace("#\[u\](.*?)\[/u\]#si",'<u>\\1</u>',$tekst);
  8. $tekst = preg_replace("#\[s\](.*?)\[/s\]#si",'<s>\\1</s>',$tekst);
  9. $tekst = preg_replace('#\[br]#si', '<br />', $tekst);
  10.  
  11.  
  12. echo''. $tekst .'';


"Entery" działają, ale problem w tym że co wers występują znaki
  1. ><


Gdy przeglądam zawartość $tekst wygląda to tak:
  1. <[br]>


natomiast, gdy dam przy wyświetlaniu:
  1. $tekst = preg_replace('#\<[br]>#si', '<br />', $tekst);


to entery w ogóle nie działają.

Prosiłbym o pomoc. Pozdrawiam.
bmL
Robisz preg replace ale nie przekazujesz tak na prawdę wyrażenia regularnego. Spróbuj:
  1. $tekst = preg_replace('<br />', '[br]', $tekst);

zamienić na
  1. $tekst = str_replace('<br />', '[br]', $tekst);
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.