Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] znak "\r\n" nie łamie wiersza
Mariner
post 26.12.2006, 05:34:21
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
fiszol
post 26.12.2006, 05:57:50
Post #2





Grupa: Zarejestrowani
Postów: 449
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


--------------------
\o/
Go to the top of the page
+Quote Post
Denver
post 26.12.2006, 10:23:43
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 26.12.2006, 11:15:41
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 />


--------------------
Warsztat: Windows 7 Pro 64bit | Apache 2.2 | PHP 5.2 | MySQL 5.0 | PHPmyadmin 2.6.4
Go to the top of the page
+Quote Post
Mariner
post 27.12.2006, 03:53:59
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 27.12.2006, 09:12:06
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. ?>


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
ARJ
post 27.12.2006, 12:51:10
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.


--------------------
Warsztat: Windows 7 Pro 64bit | Apache 2.2 | PHP 5.2 | MySQL 5.0 | PHPmyadmin 2.6.4
Go to the top of the page
+Quote Post
Cysiaczek
post 27.12.2006, 13:41:28
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:


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


Efekt gwarantowany : )

Pozdrawiam.


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
Mariner
post 27.12.2006, 13:43:15
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
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 27.04.2025 - 08:01