2016-04-19 3 views
1

Kann jemand erklären, warum 76 Zeichen der Standard ist, und warum das in der Praxis nützlich sein könnte?Warum verwendet PHP chunk_split() standardmäßig eine Chunklänge von 76?

+1

ersten Absatz in PHP doc: RFC 2045 ... – Zimmi

+2

Überprüfung der Kommentar in der Anleitung kann manchmal helfen: http://php.net/manual/en/function.chunk-split.php#114423 – Rizier123

+2

Ja, ich habe diese RFC 2045 Notiz gesehen, aber ich möchte wissen, warum diese Nummer tatsächlich gewählt wurde. – Anton

Antwort

1

Da die RFC 2045-Semantik angibt, dass codierte Zeilen nicht länger als 76 Zeichen sein dürfen, wird die nachfolgende CRLF nicht berücksichtigt.

Nachtrag: [Warning: Highly Pedantic Präsentation folgt]

Es gibt verschiedene Mechanismen für die "Content-Transfer-Encoding" und zwei der wichtigsten Methoden (für diese Diskussion) sind „quoted-printable "und" Base64 ".

Quoted-Printable Codierung soll Daten darstellen, die druckbaren Zeichen im US-ASCII-Zeichensatz entsprechen. Base64 Content-Transfer-Encoding wurde entwickelt, um beliebige Sequenzen von Daten in einer Form darzustellen, die nicht für Menschen lesbar ist. Beide Codierungen transformieren ihre Eingabe von einer beliebigen Domäne in ein Material, das sicher transportiert werden kann eingeschränkte Transporte.

"Eingeschränkte Transporte" bezeichnet einen Transport, der nur 7-Bit-Daten verarbeiten kann, d. H. Akustische Modems und analoge Leitungen. Mit anderen Worten, es wurde entwickelt, um unter wirklich schlechten Bedingungen zuverlässig zu sein.

Da Quoted-Printable allgemein zeilenorientiert sein soll und weil RFC 2045 Termine bis 1996 zurück, um es vernünftig scheint, dass die spec Autoren davon ausgehen, erwartet, dass der Text durch einen Punkt auf einer 80-Säule CRT oder gedruckt gesehen werden würde -Matrixdrucker oder TTY. Wenn das wahr ist, dann wäre die Vorgabe von 76 Zeichen der Wunsch, den kleinsten gemeinsamen Nenner der verfügbaren Anzeigetechnologie zu berücksichtigen.

Wenn Sie sich fragen, warum Verwirrung mit Base64 im Fall von Nur-Text-transportieren, weil es verschiedene Arten von Teil sind, kann nicht nach den Regeln quoted-printable Codierung erzeugt werden. Base64 hat nicht dieselben Einschränkungen, die seine Verwendung sinnvoll erscheinen lassen.

+0

Technisch ist dies die richtige Antwort, also werde ich es als solche markieren. Ich war wirklich auf der Suche nach einer Erklärung, WARUM das die gewählte Nummer war, für PHP und für RFC 2045. Für alle, die sich fragen: lies [this] (http://php.net/manual/en/function.base64-encode. php # 111942), die erklärt, wie 76 Zeichen am besten ist, die mit Base64-Codierung nett spielt. – Anton

+1

@Anton, ich vertiefte tiefer in RFC 2045 und habe eine Theorie, warum 76 Zeichen gewählt wurde. Siehe den Anhang zu meiner Antwort. – DFriend

Verwandte Themen