Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] znak "\r\n" nie łamie wiersza
Forum PHP.pl > Forum > Przedszkole
Mariner
[php]
Apache 2.0.54 z php version 5.0.5. winxp
Od początku zainstalowania serwera i php na własnym kompie znak złamania wiersza "\n" nie działa w moich skryptach,
próbowałem: \n , '\n' , "\n" ,"\n\r" '\n\r' i nic z tego
w przeglądarce wynik pracy skryptu wychodzi bez złamania wiersza , co może być tego przyczyną ?
np:

Kod

<?php
echo "londyn \r\n londyn";
?>


na moim kompie daje taki rezultat :
Kod
londyn londyn


lub umieszczenie czystego znaku \n złamania wiersza generuje ostrzeżenie :

Kod
Warning: Unexpected character in input: '\' (ASCII=92) state=1
          Notice: Use of undefined constant n - assumed 'n'
           londyn n londyn

Czy istnieją wpisy w pliku konfiguracyjnym serwera lub php odpowiadające za interpretowanie takiego znaku ?
Być może to są jakieś ustawienia konfiguracyjne ale nie jestem tego pewien , prosze o sugestie .
Dzięki fiszol za pomoc ale to "\r\n" także nie działa , problem najwyraźniej tkwi gdzie indziej ,
ma ktoś jeszcze jakieś pomysły co to może być ?
fiszol
w Twoim przypadku:
  1. <?
  2. echo "lamany r wiersz";
  3. ?>

\r - win
\n - unix
\r\n - mac

więc 100% pewność daje \r\n ;p
Denver
Pamiętaj, że znaki \r, \n są traktowane jako zwykłe ciągi znakowe, jeśli umieścisz je w apostrofach (') zamiast cudzysłowów (").
ARJ
http://pl.php.net/manual/pl/function.nl2br.php <= funkcja zamieniająca znak nowej linii na <br />
Mariner
Dziękuję za chęci ale jak na razie nikt mi nie pomógł tak jak oczekiwałem , potrzebuję wiedzieć dlaczego znaki złamania wiersza nie działają w moich skryptach ? dla jasności dodam że używam je tak :

Kod
<?php    // krótkie znaczyniki są u mnie wyłączone
   echo  "wiersz\r\nwiersz";
?>


Czy ktoś spotkał się już z takim problemem u siebie ?
Jak to jest w waszych skryptach , czy zdażyło się wam że znak złamania wiersza nie działał ?
Bardzo proszę o pomoc w tej sprawie doświadczonej osoby , bo problem może tkwić w ustawieniach konfiguracyjnych .
JaRoPHP
W przeglądarce po wpisaniu:
  1. <?php
  2. echo "wierszrnwiersz";
  3. ?>
otrzymasz:
Cytat
wierszwiersz
W źródle strony będzie widoczny efekt łamania wiersza:
Cytat
wiersz
wiersz

Jeżeli chcesz, aby przeglądarka wyświetlała wiersze w osobnych liniach, użyj znacznika XHTML-a <br />:
  1. <?php
  2. echo "wiersz<br />rnwiersz";
  3. ?>
ewentulanie skorzystaj z funkcji nl2br:
  1. <?php
  2. echo nl2br("wierszrnwiersz");
  3. ?>
ARJ
JaRoPHP opisał jak to działa. możesz też wyświetlać to w ten sposób:
  1. <?php
  2. echo '<pre>';
  3. echo 'Pierwsza liniarn 2 linia';
  4. echo '</pre>';
  5. ?>

tego się używa przy print_r, bo wtedy łatwiej widać budowę tablicy.
Cysiaczek
@Mariner - dostałeś link do funkcji nl2br od ARJ - wykorzystaj. Twoje znaki końca wiersza działają, ale p[od warunkiem, że trafią na środowisko, które je poprawnie zinterpretuje. Np.
  1. <?php
  2. $string="1 linian2 linian";
  3. print $string;
  4. ?>

Wyświetlone w przeglądarce nic nie da, ale już w linuksowej konsoli owszem:


Spróbuj teraz tak:
  1. <?php
  2. $string="1 linian2 linian";
  3. print nl2br($string);
  4. ?>


Efekt gwarantowany : )

Pozdrawiam.
Mariner
Problem rozwiązany , dzięki Cysiaczek!
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.