Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] Jaki powinien być znak nowej linii w text/plain?
SmokAnalog
post 25.01.2018, 02:27:53
Post #1





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Stosunkowo często używam Content-Type: text/plain, głównie dla moich własnych narzędzi. Tak się zastanawiam - czy jest jakiś standard jaki powinien być znak nowej linii dla zwykłego tekstu wysyłanego do przeglądarki? Jak jeszcze byłem lamusem, używałem do tego celu PHP_EOL, co jest absolutną bzdurą, bo przecież odpowiedź do przeglądarki nie ma nic wspólnego z systemem używanym na serwerze. Teraz używam \n, ale być może jakieś standardy zalecają \r\n?

Oczywiście działa jedno i drugie. Pytam jako pedant. smile.gif
Go to the top of the page
+Quote Post
trzczy
post 25.01.2018, 04:39:59
Post #2





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


windowsowy \r\n
https://www.ietf.org/rfc/rfc2046.txt
Cytat
RFC 2046 Media Types November 1996


4.1.1. Representation of Line Breaks

The canonical form of any MIME "text" subtype MUST always represent a
line break as a CRLF sequence.
Go to the top of the page
+Quote Post
SmokAnalog
post 25.01.2018, 13:01:07
Post #3





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


To jest standard dotyczący poczty, a nie przeglądarek.
Go to the top of the page
+Quote Post
trzczy
post 25.01.2018, 13:40:06
Post #4





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


https://en.wikipedia.org/wiki/MIME
HTTP go używa.
Cytat
Although MIME was designed mainly for SMTP, the content types defined by MIME standards are also of importance in communication protocols outside email, such as HTTP for the World Wide Web. Servers insert the MIME header at the beginning of any Web transmission. Clients use this content type or media type header to select an appropriate viewer application for the type of data the header indicates. Some of these viewers are built into the Web client or browser (for example, almost all browsers come with GIF and JPEG image viewers as well as the ability to handle HTML files).
Go to the top of the page
+Quote Post
darko
post 25.01.2018, 13:40:49
Post #5





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


"\r\n" Nie masz poważniejszych, prawdziwych problemów ? dry.gif


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
SmokAnalog
post 25.01.2018, 13:48:50
Post #6





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


@darko rozumiem, że jesteś z tych, których zadowala "że działa" (klepacz)? tongue.gif

@trzczy no niech będzie, że tak smile.gif Nie znalazłem innego źródła, które by twierdziło cokolwiek na temat nowych linii w text/plain dla przeglądarki, więc pewnie jest to ten sam standard.
Go to the top of the page
+Quote Post
Pyton_000
post 25.01.2018, 14:28:19
Post #7





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


MIME jest MIME, nie ważne gdzie...
Go to the top of the page
+Quote Post
trzczy
post 25.01.2018, 14:45:22
Post #8





Grupa: Zarejestrowani
Postów: 460
Pomógł: 49
Dołączył: 5.06.2011

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


Jak szukać jakiejś bardziej konkretnej podkładki, to jeszcze to https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers
Cytat
Headers can be grouped according to their contexts:

General header: Headers applying to both requests and responses but with no relation to the data eventually transmitted in the body.
Request header: Headers containing more information about the resource to be fetched or about the client itself.
Response header: Headers with additional information about the response, like its location or about the server itself (name and version etc.).
Entity header: Headers containing more information about the body of the entity, like its content length or its MIME-type.


Cytat
Content negotiation

Accept
Informs the server about the types of data that can be sent back. It is MIME-type.

Accept-Charset
Informs the server about which character set the client is able to understand.
Accept-Encoding
Informs the server about the encoding algorithm, usually a compression algorithm, that can be used on the resource sent back.
Accept-Language
Informs the server about the language the server is expected to send back. This is a hint and is not necessarily under the full control of the user: the server should always pay attention not to override an explicit user choice (like selecting a language in a drop down list).


Ten post edytował trzczy 25.01.2018, 14:48:20
Go to the top of the page
+Quote Post
SmokAnalog
post 25.01.2018, 14:55:41
Post #9





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Cytat(Pyton_000 @ 25.01.2018, 14:28:19 ) *
MIME jest MIME, nie ważne gdzie...

No właśnie niby tak, ale czy na pewno typ MIME implikuje wszystkie cechy samej treści? Innymi słowy, czy MIME to bardziej standard czy etykieta?

@trzczy tutaj akurat nie za bardzo widzę związek z tematem smile.gif
Go to the top of the page
+Quote Post
darko
post 25.01.2018, 15:31:20
Post #10





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Cytat(SmokAnalog @ 25.01.2018, 13:48:50 ) *
@darko rozumiem, że jesteś z tych, których zadowala "że działa" (klepacz)? tongue.gif

Nie oceniaj pochopnie, poza tym - nie rozumiem Cię, ani Twoich problemów.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
SmokAnalog
post 25.01.2018, 15:45:15
Post #11





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Mój „problem” polega ma tym, że interesują mnie standardy i to, jak działa web od wewnątrz. Uważam, że każdy sensowny programista powinien się interesować takimi niuansami.
Go to the top of the page
+Quote Post
darko
post 25.01.2018, 15:51:48
Post #12





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Dostałeś już odpowiedzi na nurtujące Cię problemy dotyczące "standardów" zapisu nowej linii. Nie widzę dalszego sensu drążenia tematu, ale co taki klepacz kodu, jak ja może na ten temat wiedzieć...


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
SmokAnalog
post 25.01.2018, 15:53:47
Post #13





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Przecież o nic Cię nie pytam tongue.gif
Go to the top of the page
+Quote Post
Pyton_000
post 25.01.2018, 17:30:51
Post #14





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

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


@darko powiem Ci że akurat @Smok na forum ma jednak co nieco mądrego do powiedzenia więc nie traktowałbym go jak debila. Popieram drążenie tematu bo sam dzięki temu wwiem jak pewne rzeczy działają i dla czego co pozwala na lepsze zrozumienie pewnych zagadnień.
Go to the top of the page
+Quote Post
darko
post 25.01.2018, 18:01:56
Post #15





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Nie twierdzę, że jest inaczej i nikogo nie traktuje, jak debila. Drążcie sobie, jak działa new line.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
SmokAnalog
post 25.01.2018, 18:09:26
Post #16





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


@darko mam madzieję, że się nie obraziłeś za te złośliwe żarty smile.gif
Go to the top of the page
+Quote Post
darko
post 25.01.2018, 18:10:56
Post #17





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Do tego stopnia że wklejam Wam link do artykułu, z 2006 roku, ale wydaje się być ciągle aktualny: http://www.onlamp.com/pub/a/onlamp/2006/08...g-newlines.html


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
SmokAnalog
post 25.01.2018, 18:48:40
Post #18





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Wszystko fajnie, tylko w tym artykule nie ma odpowiedzi na moje pytanie.
Go to the top of the page
+Quote Post
darko
post 28.01.2018, 13:46:40
Post #19





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Abstrahując od tego, że pytanie jest źle postawione, ponieważ plain text wcale nie musi zawierać znaków kontrolnych, aby spełniał definicję plain-textu
Cytat
It may also include a limited number of characters that control simple arrangement of text, such as line breaks or tabulation characters.

[źródło:] https://en.wikipedia.org/wiki/Plain_text
czyli - może, ale nie musi zawierać oneeyedsmiley02.png

Zarówno sposób zapisu, jak i interpretacji tego znaku zależy od użytego standardu kodowania (znaków). I właśnie te standardy opisują, jakiej sekwencji należy użyć, aby znak nowej linii był poprawnie interpretowany.
Podsumowując: nie ma jednej, jednolitej interpretacji, która obowiązuje wszędzie, natomiast są odpowiednie standardy dotyczące poprawnego kodowania znaków. Tabela reprezentacji znaków, akapit:
Cytat
Representations in different character encoding specifications

https://en.wikipedia.org/wiki/Newline

Jak widać, inaczej jest to zapisane w ASCII, inaczej w Unicode, jeszcze inaczej interpretują np. 8-bitowe Atari czy ZX Spectrum zakochany.gif

sekret.gif Można to porównać do np. języków europejskich, gdzie piwo to zarówno beer, jak i: cerveza, pivo, piwo, μπυρα, alut, öl itd. itp. W zależności od kraju, w którym się znajdujesz - chodzi o to, żeby kupić piwo, a jak to zapisać to już jest sprawa wtórna i zmartwienie spragnionego melanżownika. Pani w sklepie zrozumie smile.gif


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
SmokAnalog
post 28.01.2018, 19:00:44
Post #20





Grupa: Zarejestrowani
Postów: 1 707
Pomógł: 266
Dołączył: 3.07.2012
Skąd: Poznań

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


Cytat(darko @ 28.01.2018, 13:46:40 ) *
Abstrahując od tego, że pytanie jest źle postawione, ponieważ plain text wcale nie musi zawierać znaków kontrolnych, aby spełniał definicję plain-textu

To co piszesz jest nielogiczne. Co to ma w ogóle do rzeczy, że nie musi zawierać? Pytam czy jest jakiś standard zapisu znaku nowej linii. Ktoś, kto sztywno trzyma się zasad, teoretycznie mógłby inaczej wtedy zinterpretować niewłaściwy znak nowej linii, czyli na przykład nie wyświetlić wcale przejścia do nowej linii (jeśli standard to \r\n, a my użyjemy \n) lub wyświetlić jakiś babolek (w odwrotnej sytuacji).

Jeśli jest tak, że nie ma na to standardu i plain text to wolna amerykanka, to jest to odpowiedź na moje pytanie, a nie źle postawione pytanie.

Jeśli pytam czy kwiaty należy podlewać wodą źródlaną czy mineralną, a odpowiedź to "obojętnie, bo obie identycznie spełnią swoje zadanie", to pytanie nie jest źle postawione.

Nielogiczna jest Twoja odpowiedź, bo przeglądarka to bardzo specyficzny twór i niekoniecznie musi odzwierciedlać system, na którym siedzi. Może mieć własne, ustalone przez W3C czy innego czorta, standardy.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 16.04.2024 - 11:01