Portál AbcLinuxu, 7. května 2024 05:09


Dotaz: Netisknutelné znaky PHP

16.4.2008 12:43 MX
Netisknutelné znaky PHP
Přečteno: 2395×
Odpovědět | Admin
Mám potíže s odstraněním netisknutelných znaků z řetězce odeslaného formulářem.

Pokud ve formuláři vyplním více řádků, nedaří se mi žádnou PHP funkcí tyto znaky vyčistit vyjma začátku a konce řetězce.

Zkoušel jsem: $vycistit = str_replace("\\n", "", $vycistit); $vycistit = str_replace("\n", "", $vycistit); $vycistit = chop($vycistit); $vycistit = trim($vycistit);

Zkoušel jsem i nl2br(), ale uvnitř řetězce formátování na odřadkování zůstane.

Poradíte prosím.
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Toman avatar 16.4.2008 12:55 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Rozbalit Rozbalit vše Re: Netisknutelné znaky PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Zkus trim
Have you tried turning it off and on again? | tomaskavalek.cz | Google
16.4.2008 13:02 MX
Rozbalit Rozbalit vše Re: Netisknutelné znaky PHP
Trim odstraní jen ze začátku a konce, ale ne z prostředku.
Aleš Janda avatar 16.4.2008 13:02 Aleš Janda | skóre: 23 | blog: kýblův blog | Praha
Rozbalit Rozbalit vše Re: Netisknutelné znaky PHP
Odpovědět | | Sbalit | Link | Blokovat | Admin
Tohle:

$vycistit = str_replace("\n", "", $vycistit);

musí fungovat. Spíš je problém v tom, že tam můžou zůstat znaky \r. Takže bych to celé napsal jako

$vycistit = str_replace("\n", "", str_replace("\r", "", $vycistit));
Zahrajte si trojšachy přes internet :-)
Toman avatar 16.4.2008 13:11 Toman | skóre: 29 | blog: Tomanův blog | Kostelec nad Orlicí
Rozbalit Rozbalit vše Re: Netisknutelné znaky PHP
V tom pripade se omlouvam, ano, mate pravdu. Zkusil bych tedy toto:
function trim_all($str) {
  return str_replace(str_split("\t\n\r\0\x0B"), "", $str);
}
16.4.2008 13:24 MX
Rozbalit Rozbalit vše Re: Netisknutelné znaky PHP
Tak uz jsem na to prisel!!!!

Dik moc za pomoc, ale tohle vsechno jsem vyzkousel a nefungovalo... Pomohlo az toto:
$vycistit = str_replace((chr(10)), " ", $vycistit);
$vycistit = str_replace((chr(13)), " ", $vycistit);

26.10.2011 08:28 Tom
Rozbalit Rozbalit vše Re: Netisknutelné znaky PHP
Našel jsem na google toto vlákno a jen bych doplnil, že to jde řešit i pomocí regulárů: $row = preg_replace("/[\n\t\r]/i", '', $row);

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.