Autor Zpráva
ssdddd
Profil *
Zdravím vypisuji na stránku html kód pomocí php a chtěl bych pomocí nějaké nahrazovací funkce odmazat duální řádky

takže když by byl anpříklad takovýhle zdroják:

Test


test1
test2

test3


tak po prohnání tím nahrazením by vzniklo

test
test1
test2
test3

Teď nemám na mysli aby to tak vypadalo na stránce, ale při zobrazení zdrojového kódu.

Díky
Chamurappi
Profil
Reaguji na ssdddda:
Dohledej si, jak zapsat do řetězce nový řádek (anglicky new line) a pak nech nahradit dva nové řádky za jeden — a to opakuj, dokud text nezhoustne.
Nebo použij regulární výrazy (tuším, že v PHP to bude preg_replace), kde můžeš snadno nahradit jeden a více výskytů znaku za jeden výskyt.
ssdddd
Profil *
To je právě ten problém když potřebuju v souboru nový řádek použiju /n, jenomže když dám nahradit /n tak to neudělá nic.
dtr
Profil *
\n ?
ssdddd
Profil *
To sem myslel, akorát sem to sem špatně napsal :)
Joker
Profil
ssdddd:
Se str_replace by \n mělo normálně fungovat.
U regulárních výrazů bude asi potřeba použít modifikátor "s" (single-line).
dtr
Profil *
uzavíráš to \n do uvozovek? Pokud do apostrofů, tak to nebude fungovat.
Majkl578
Profil
echo preg_replace("~\n+~", "\n", $input);
Joker
Profil
dtr:
uzavíráš to \n do uvozovek? Pokud do apostrofů, tak to nebude fungovat.
U regulárního výrazu je to jedno.

Majkl578:
Potíž je, že ve Windows je konec řádku \r\n... čili dva jsou \r\n\r\n, takže \n+ nefunguje.
echo preg_replace("~(\r?\n)+~", "\n", $input);
Majkl578
Profil
Joker:
Ach ty windowsy... :\
Chamurappi
Profil
Reaguji na Jokera:
Potíž je, že ve Windows je konec řádku \r\n...
Myslím, že prohlížeče na mnoha místech normalizují konce řádků na „\r\n“, nehledě na platformu, pod kterou zrovna běží. Takže je spíš otázka, co chce ssdddd zpracovávat.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0