Ich möchte eine mehrteilige Antwort in C++ aus einem PHP-Skript zurückgeben. Wer kennt einen sehr leichten MIME-Parser, der das für mich tun kann?Einfacher C++ - MIME-Parser
Antwort
Ich weiß, dass dies zu wenig, zu spät sein könnte, aber ich hatte ein ähnliches Bedürfnis. Ich wollte einen Pantomime-Parser, der nur das Enkodieren und Dekodieren des MIMEs durchführt. Der Vollständigkeit und der Google-Fähigkeit halber dachte ich, ich sollte meine Erkenntnisse hier veröffentlichen. Denken Sie daran, dass ich nicht daran interessiert war, E-Mails zu senden und zu empfangen, sondern MIME zu kodieren und zu dekodieren. Hier sind die Bibliotheken, die ich für C++ MIME recherchiert:
http://www.vmime.org/ - Sieht aus wie zu viel. Enthält pop, SMTP, tls, IMAP, könnte dies entfernen. Posix und Fenster.
http://codesink.org/mimetic_mime_library.html - sieht vielversprechend aus. Sehr schöne API zum Einlesen und Erstellen von Nachrichten. Ging mit diesem. Nicht zu schwer. Musste 2 Dinge "reparieren". Zuerst für Multipart wurde der Code nur nach der Zeichenkette "multipart" suchen und "multipart/mixed" nicht erkennen und die Teile nicht ausschreiben. Zweitens musste ich den Mimeentity-Schreibcode hacken. Es wurde nur das std :: deque Field geschrieben, und da dies Strings sind, scheint es das alphabetisch zu tun. Dies ist ein Problem, da die MIME-Version das erste ausgeschriebene Feld sein muss. Also habe ich das behoben. Ich musste auch Unterstützung für Content-Length hinzufügen.
http://www.mozilla.org/mailnews/arch/libmime-description.html - Hard Zeit diese zu finden. Musste das ganze Paket herunterladen. mailnews \ mime \ src
http://www.example-code.com/vcpp/smime.asp - Nicht berücksichtigt, weil es keinen Quellcode hatte und Windows-spezifisch war.
http://www.scalingweb.com/mime_parser.php - nicht der Ansicht, weil es auf anderen Stream-Bibliothek von Autor abhängt.
http://httpd.apache.org/docs/2.2/mod/mod_mime.html - kann nicht diese C-Implementierung finden.
Ich wählte Mimetic für meine Bedürfnisse, obwohl ich ein paar Dinge hinzufügen musste. Keines der gefundenen Parser hat die optionalen Felder (Content-Length, etc ..) sehr gut verarbeitet. Ich brauchte es auch, um mehrere Plattformen (Windows, Linux, etc ..) zu unterstützen
Nicht mein eigenes Horn hier Toot, aber GMime ist eine sehr vollständige MIME-Parser in C geschrieben, die den Content-Length-Header behandeln kann. Es handhabt auch DOS- und UNIX-Zeilenenden mit Leichtigkeit, behandelt gebrochene Kopfzeilenzeichensatzkodierungen, erfordert nicht, dass Sie die gesamte Nachricht in RAM lesen, unterstützt PGP/MIME, etc. Es hat auch eine sehr umfassende Reihe von Komponententests, die ich Verwenden Sie, um Regressionen zu verhindern.
Die Leute haben es seit einiger Zeit unter Windows (unter cygwin und/oder mingw32 afaik) aufgebaut, aber in der letzten Woche habe ich viel Zeit damit verbracht, Windows durch die Einrichtung von Visual C++ eine erstklassige Priorität zu geben Projekt-/Lösungsdateien und stellen sicher, dass alles aufbaut.
Dargestellt würde ich auch wenn Sie bereits einen MIME-Parser gefunden haben, nur damit andere Leute, die eine ähnliche Frage haben, eine andere Option sehen, wenn die oben genannten Lösungen nicht ihren Bedürfnissen entsprechen.
Besser schneiden, was Sie mit Regex von Mime Multipart Daten schneller brauchen. Und brauchen keine neuen Bibliotheken. Es gibt einfache PHP-Parser https://github.com/breakermind/PhpMimeParser/blob/master/PhpMimeParser_class.php aber mit Regex können Sie es in C++ sehr einfach schreiben. Nur 357 Zeilen.
- 1. Einfacher Webserver in C++?
- 2. C# - Einfacher Binärbaum
- 3. Einfacher Pthread! C++
- 4. C++ Einfacher UDP-Server
- 5. einfacher Rückruf in Visual C++
- 6. C# + DirectShow.NET = Einfacher WebCam-Zugriff?
- 7. Einfacher Multithread-Server in C++?
- 8. Einfacher CRUD Generator für C#
- 9. C# -Anwendung mit einfacher Datenbank?
- 10. Sehr einfacher Server in C
- 11. Ein einfacher Wavetable-Oszillator in C
- 12. Ein sehr einfacher C++ Web Crawler/Spider?
- 13. Einfacher C++ Webserver mit PHP-Unterstützung
- 14. einfacher HTTP-Client c recv() blockiert
- 15. C++ Boost ASIO einfacher periodischer Timer?
- 16. Sehr einfacher C++ TCP Echo Server
- 17. Einfacher Bildserver
- 18. Einfacher Databinding
- 19. einfacher Erfassungsalgorithmus
- 20. Sehr einfacher DNS-Server
- 21. einfacher Python if-Anweisung nicht
- 22. Einfacher Injektor - Benutzerdefinierte WebViewPage
- 23. Was ist ein sehr einfacher C++ Profiler (VC++)?
- 24. C++ Ziel löst Fehler mit einfacher Grammatik aus T.g
- 25. Ein einfacher Pfad zum Roaming von Dateien in C#
- 26. WSSE (mit Digest) in WCF \ .Net \ C# - Ein einfacher Weg?
- 27. C# - Erhalte benutzerfreundliche Namen einfacher Typen durch Reflektion?
- 28. Einfacher Programmkompilierfehler mit C, 'Zu wenig Argumente' für 'fgets'
- 29. Einfacher Klick zum Öffnen des Menüsymbols in C#
- 30. Einfacher mehrdimensionale C-Stil-Array gibt Segmentierungsfehler: 11
http://www.scalingweb.com/mime_parser.php scheint sich geändert zu haben - führt nun zu einer Website, die Wägetechnik verkauft. –