[PHP] Jaki powinien być znak nowej linii w text/plain? |
[PHP] Jaki powinien być znak nowej linii w text/plain? |
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. |
|
|
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. |
|
|
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.
|
|
|
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).
|
|
|
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 ?
-------------------- Nie pomagam na pw, tylko forum.
|
|
|
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)?
@trzczy no niech będzie, że tak 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. |
|
|
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...
|
|
|
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 |
|
|
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%) |
|
|
|
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%) |
@darko rozumiem, że jesteś z tych, których zadowala "że działa" (klepacz)? Nie oceniaj pochopnie, poza tym - nie rozumiem Cię, ani Twoich problemów. -------------------- Nie pomagam na pw, tylko forum.
|
|
|
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.
|
|
|
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.
|
|
|
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
|
|
|
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ń.
|
|
|
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.
|
|
|
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
|
|
|
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.
|
|
|
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.
|
|
|
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ć 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 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 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
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%) |
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. |
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 04:49 |