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?
Antwort
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.
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
@Anton, ich vertiefte tiefer in RFC 2045 und habe eine Theorie, warum 76 Zeichen gewählt wurde. Siehe den Anhang zu meiner Antwort. – DFriend
- 1. PHP chunk_split() Problem
- 2. chunk_split in Python
- 3. Warum verwendet std :: stack standardmäßig std :: deque?
- 4. Was gibt eine PHP-Funktion standardmäßig zurück?
- 5. Welches Segmentregister wird standardmäßig verwendet?
- 6. PHP Sitzungen standardmäßig Zeitüberschreitung
- 7. Warum verwendet tf.nn.embedding_lookup eine Liste von Einbettungen?
- 8. Warum Gestenerkennerausgänge standardmäßig stark sind
- 9. PHP Yü - ActiveDropDownList() standardmäßig ausgewählt
- 10. Warum wird nicht standardmäßig (RankNTypes-Verwendung) standardmäßig angewendet?
- 11. Warum ist 'char' standardmäßig in C++ signiert?
- 12. Warum verwendet PHP 5 __construct() anstelle von className() als Konstruktor?
- 13. Three.js release 73 bis 76 Animationsprobleme
- 14. Wie wird Octaves "gnuplot" anstelle von "fltk" standardmäßig verwendet?
- 15. Tweepy gibt nur 76 Tweets zurück
- 16. Warum sind Scala-Sammlungen standardmäßig keine "Ansichten"?
- 17. Welche Google Maps-API-Version wird standardmäßig verwendet?
- 18. Warum schiebt git standardmäßig keine Tags?
- 19. Grund für java.io.IOEXception bei com.sun.midp.io.j2me.file.Protocol.delete (+76) Ausnahme?
- 20. Warum hat friendly_id standardmäßig zwei Bindestriche?
- 21. Warum sind statische Felder standardmäßig null?
- 22. Warum kann NSTextView nicht für eine schwache Referenz verwendet werden?
- 23. Warum ist Autospec bei Verwendung von unittest.mock.patch standardmäßig nicht True?
- 24. Wie man Checkbox standardmäßig in PHP
- 25. Warum ist READ_COMMITTED_SNAPSHOT nicht standardmäßig aktiviert?
- 26. Warum sind WinForms-Anwendungen STAThread standardmäßig?
- 27. Warum iteriert Pandas standardmäßig über DataFrame-Spalten?
- 28. Warum ist ALLES nicht UTF-8 standardmäßig?
- 29. PHP: fopen: Dateizugriff standardmäßig in der Warteschlange?
- 30. Warum lädt 0.13.6 Scala 2.10.4 standardmäßig herunter?
ersten Absatz in PHP doc: RFC 2045 ... – Zimmi
Überprüfung der Kommentar in der Anleitung kann manchmal helfen: http://php.net/manual/en/function.chunk-split.php#114423 – Rizier123
Ja, ich habe diese RFC 2045 Notiz gesehen, aber ich möchte wissen, warum diese Nummer tatsächlich gewählt wurde. – Anton