Miksi str_replace funktio ei löydä \n tai \r
Seuraava ei toimi:
$description = str_replace(array("\r", "\r\n", "\n"), '', $description_orig);
\n ja \r merkit tallentuvat tämänkin jälkeen.
Olisiko ongelma noiden hakusanojen järjestyksessä?
<?php // Order of replacement $str = "Line 1\nLine 2\rLine 3\r\nLine 4\n"; $order = array("\r\n", "\n", "\r"); $replace = '<br />'; // Processes \r\n's first so they aren't converted twice. $newstr = str_replace($order, $replace, $str); ?>
(https://www.php.net/str_replace, Example #2)
talikko kirjoitti:
Seuraava ei toimi:
Hyvin tuo näytti toimivan, kun testasin. "\r\n":ää ei tosin tarvitse poistaa, jos "\r" ja "\n" poistetaan.
villev kirjoitti:
Olisiko ongelma noiden hakusanojen järjestyksessä?
Järjestyksellä on väliä, mikäli korvataan jotain, mutta ei silloin kun poistetaan, eli korvataan tyhjällä.
Käsittämätöntä, mun piti tehdä se näin
$description = str_replace(array("\\r", "\\n"), '', $description_orig);
Ja tämän jälkeen jäi jäljelle vielä yhdet kauttaviivat jotka piti ottaa pois stripslashella.
Jäi mainitsematta, että tuo description tulee textareasta. Liittyykö jotenkin tähän, en tiedä.
Eihän siinä mitään uskomatonta ole. Se vaan tarkoittaa sitä, ettei tekstissäsi ollut rivivaihtoja ollenkaan vaan \r ja \n merkkiyhdistelmiä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.