Portál AbcLinuxu, 6. května 2025 14:11
Ahoj. Pri ukladani textu z textarea do souboru se kazdy konec radku oznaci znakem ^ . Tento znak je videt v textovem editoru v MC. Vi mi pak vypisuje ^M. Potreboval bych se tohoto formatovani zbavit pri desinfekci dat pomoci PHP.
Pri pouziti funkce br2nl a naslednem nahrazeni zalomeni radku \n se ^ porad v textu objevuje.
pri vklozeni znaku 3 4 5 a 66 do <textarea> a ulozeni do souboru pres
$text = Str_Replace("\n","",trim(nl2br($_POST['popis'])));
mam vypis z vi:
3<br />^M4<br />^M5<br />^M66<br />
To není ^. To je carriage return, znak s ascii číslem 13, který se vkládá spolu se znakem line feed jako konec řádku. Je to neviditelný znak (pokud odhlédneme od faktu, že v některých programech ve Windows se bez něj špatně zalomí řádky). Pouze MC a Vim jeho přítomnost dávají najevo znaky ^, resp. ^M. Zatímco na posixové platformě se řádky ukončují standardně znakem LF neboli \n s ascii číslem 10, ve Windows a v řadě nejen síťových protokolů se jedná právě o dvojici CRLF.
V PHP se tohoto znaku bavíte příslušnou funkcí, která umí nahrazovat části řetězců.
$text = Str_Replace("\r","",trim(nl2br($_POST['popis'])));
Dekuji vsem za vysvetleni a za radu. Pouziju \r misto \n.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.