Jak zpracovávat řádkování nl2br, br2nl

Když používáte pro vstup textu obyčejný formulář, tedy textarea, budete nějak potřebovat zpracovávat řádkování.


Text zapsaný v tagu textarea označuje každé stisknutí enteru znakem pro nový řádek, tedy "\n". Pokud později chcete zobrazit tento text v html kódu, řádkování se nezobrazí, potřebujete nahradit znak \n za tag <br/>.

PHP na to má speciální funkci, nazývá se nl2br. Někdy je však potřeba funkce opačná, tedy potřebujete např. předat text s řádkováním pomocí tagu <br/> v javascriptové funkci alert(), pak by se mohla hodit funkce br2nl, ale tu už php nemá. Stačí na to pouze regulární výraz, viz následující řádky. Je case insensitive, tedy funguje jak na tagy zapsané jako <Br/>, <BR/> nebo <br/>, bere také v úvahu přebytečné mezery <br    /> nebo chybějící lomítko <br>.

  1. <?
  2. function br2nl($text) {
  3. return preg_replace('/<br\\\\s*?\\/??>/i', "\\n", $text);
  4. }
  5. ?>