Jak zamienić \r\n na spację?
<?
$bee = “\r\n”;
$bee = str_replace(’\r\n’, ’ ', $bee);
echo $bee;
?>
To nie działa.
Ponieważ ‘\r\n’ to nie to samo co “\r\n”.
‘\r\n’ - to napis składający się z 4-ch znaków.
“\r\n” - to napis składający się z 2-ch znaków.
nie testowałem ale powinno zadziałać
$newstring = preg_replace("/[\n\r]/","",$oldstring);
Ludzie, preg_replace do prostej podmiany tekstu (na dodatek przykład z błędem)? Litości…
<?
$bee = "Tekst \r\n abc";
echo str_replace("\r\n", ' ', $bee);
?>
A dlaczego tutaj mi to nie działa?
<?php
$text = "April fools [lista] fff \r\n fff [/lista] 04/01/2002\n";
function next_year($matches)
{
$matches[2] = str_replace("\r\n", " h", $matches[2]);
return $matches[1].$matches[2]."chu".$matches[3];
}
$poka = preg_replace_callback(
"|(\[lista\])(.*)(\[/lista\])|",
"next_year",
$text);
$poka = nl2br($poka);
echo $poka;
?>
Przy okazji, może ktoś poda wyrażenie regularne zamiast:
"|(\[lista\])(.*)(\[/lista\])|"
Coś co zastąpi:
$matches[2] = str_replace("\r\n", " h", $matches[2]);
Edytuj: Wychodzi na to, że tylko \n nie da się zmienić tym sposobem, samo\r się zmienia, ale np. takie coś:
<?
$bee = "gg \r\n gg";
$bee = str_replace("\r\n", "hu", $bee);
echo $bee;
?>
Działa w całości poprawnie. Co zrobić, żeby działało też tam?
– Dodane 01.02.2010 (Pn) 22:50 –
Nikt nie potrafi mi odpowiedzieć dlaczego \n nie zmienia się w tym miejscu?
– Dodane 07.02.2010 (N) 22:50 –
Chcę aby tutaj(w pogrubionym):
"|(\[lista\])[b](.*)[/b](\[/lista\])|",
był dowolny znak, łącznie z \n. Proszę o pomoc.