Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] znak "\r\n" nie łamie wiersza
Mariner
post
Post #1





Grupa: Zarejestrowani
Postów: 47
Pomógł: 6
Dołączył: 26.12.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


[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ć ?

Ten post edytował Mariner 27.12.2006, 13:45:16
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
fiszol
post
Post #2





Grupa: Zarejestrowani
Postów: 453
Pomógł: 16
Dołączył: 25.05.2004
Skąd: Gorzów Wlkp.

Ostrzeżenie: (0%)
-----


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

Ten post edytował fiszol 26.12.2006, 05:58:24
Go to the top of the page
+Quote Post
Denver
post
Post #3





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 24.09.2003
Skąd: Giżycko / Wrocław

Ostrzeżenie: (0%)
-----


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 (").
Go to the top of the page
+Quote Post
ARJ
post
Post #4





Grupa: Zarejestrowani
Postów: 453
Pomógł: 22
Dołączył: 20.09.2004
Skąd: Kraków - NH -

Ostrzeżenie: (0%)
-----


http://pl.php.net/manual/pl/function.nl2br.php <= funkcja zamieniająca znak nowej linii na <br />
Go to the top of the page
+Quote Post
Mariner
post
Post #5





Grupa: Zarejestrowani
Postów: 47
Pomógł: 6
Dołączył: 26.12.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


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 .
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #6





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
ARJ
post
Post #7





Grupa: Zarejestrowani
Postów: 453
Pomógł: 22
Dołączył: 20.09.2004
Skąd: Kraków - NH -

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
Cysiaczek
post
Post #8





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




@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:
(IMG:http://img178.imageshack.us/img178/3082/ojoj1bf7.png)

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


Efekt gwarantowany : )

Pozdrawiam.
Go to the top of the page
+Quote Post
Mariner
post
Post #9





Grupa: Zarejestrowani
Postów: 47
Pomógł: 6
Dołączył: 26.12.2006
Skąd: Wrocław

Ostrzeżenie: (0%)
-----


Problem rozwiązany , dzięki Cysiaczek!

Ten post edytował Mariner 27.12.2006, 14:39:43
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 13.10.2025 - 05:23