Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zmiana znaku nowej linii
Forum PHP.pl > Forum > Przedszkole
iksigrek
Witam.

Jestem na etapie poznawania regEpxów i mam problem z usunięciem znaku nowej linii. Chciałbym go zastąpić znakiem spacji.
W stringu który przetwarzam udaje mi się zamienić znaki nowej linii, gdzie nowe linie zaczynają się od odstępów wyrażeniem /(\n[[:space:]]*)/
To działa. Jednak z jakiegoś powodu, gdy już "wyczyszczę" string - czyli pozostaną jedynie linia + znak nowej linii + nowa linia zaczynająca się znakiem od samego początku - nie udaje mi się zredukować znaków nowej linii do spacji. Próbowałem np /\n/ - zmiana na ' ', /\n$/, /[\n]/, (\n), (\n|$), (\n)$ i tego typu kombinacje. Nic nie wychodzi ; (

Dodam, że moim celem jest jak najskuteczniejsze zredukowanie niepotrzebnych znaków, tak by kod ważył jak najmniej. Nie musi być czytelny, jednak powinien się ładować jak najszybciej.
phpion
Zwykłe str_replace elementów "\r\n", "\n", "\r" na spacje Ci nie wystarczy?
iksigrek
Nie do konca, bo to tez nie działało.
Jednak już wiem dlaczego. Problem tkwił w tym, że podawałem tablicę dla preg_replace i /(\n[[:space:]]*)/ + właśnie "\n" jako argument.
Skoro klasa [:space:] zawiera już \n, czego nie zauważyłem, do tego zamiast asteriksa trzeba wstawić +, by nie robiła się zadyma. Wystarczyło zrobić /([[:space:]]+)/ i jest git. Dzięki za pomoc mimo wszystko. pozdr.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.