AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung PHP gzcompress(); Delphi ZDecompressStr ( ) Data error
Thema durchsuchen
Ansicht
Themen-Optionen

PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

Ein Thema von luisk · begonnen am 27. Mai 2016 · letzter Beitrag vom 30. Mai 2016
Antwort Antwort
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#1

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 12:40
Klappt doch noch nicht ganz.
Bei php wird wohl noch nicht gezippt

C:\Programme\curl> curl -I -H "Accept-Encoding: gzip,deflate" http://127.0.0.1/SQL_Gateway/SQL_Abf...php?bef=Select...
HTTP/1.1 200 OK
Date: Sun, 29 May 2016 11:33:45 GMT
Server: Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.6.3
X-Powered-By: PHP/5.6.3
Content-Type: text/html; charset=UTF-8

obwohl ich mal versucht habe hier php zu ergänzen:
Delphi-Quellcode:
<Directory "C:/your-server-root/manual"> #any path to which you wish to apply gzip compression to!
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html # or any file type you wish
      AddOutputFilterByType DEFLATE text/php
    </IfModule>
</Directory>

Delphi-Quellcode:
<Directory "C:/your-server-root/manual"> #any path to which you wish to apply gzip compression to!
    <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/html text/plain text/xml text/css text/javascript application/javascript application/x-javascript
    </IfModule>
</Directory>

Geändert von luisk (29. Mai 2016 um 12:45 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#2

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 13:17
weitere Erkenntnis:
wenn ich nun in mein php-Script folgende Zeile einfüge:
ob_start('ob_gzhandler');
und TIdHTTP.Compressor:=TIdCompressorZLib; zuweise
dann klappt es
Wenn ich TIdHTTP.Compressor:=nil; setze dann sehe ich, dass ein gezippter String kommt
So, später schaue ich mir dann mal WireShark ohne Firewall an.

Danke für die Hilfen.

Geändert von luisk (29. Mai 2016 um 13:38 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#3

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 13:29
Mich würde dennoch interessieren,
ob man das nicht auch mit einer Delphi-Funktion wie gZDecompressStr() hinbekommt.
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#4

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 13:37
Mich würde dennoch interessieren,
ob man das nicht auch mit einer Delphi-Funktion wie gZDecompressStr() hinbekommt.
Natürlich kriegt man das hin. Höchstwahrscheinlich ist es ein Encoding Problem. Du könntest man versuchen ein base64 Encode / Decode darüber laufen zu lassen. Damit hast du zwar wieder mehr Traffic (also das ist nicht sinnvoll für die Produktion), aber du kannst testen ob es ein Problem auf dem Übertragungsweg ist. Da kann ich dir aber nicht helfen; da kein Delphi.

obwohl ich mal versucht habe hier php zu ergänzen:
Du hast die Zeilen aber schon angepasst, oder? Der Pfad ist ja nur ein Beispielpfad. Außerdem würde ich das IfModule weglassen.

weitere Erkenntnis:
wenn ich nun in mein php-Script folgende Zeile einfüge:
ob_start('ob_gzhandler');
und TIdHTTP.Compressor:=TIdCompressorZLib;
dann klappt es
Wenn ich TIdHTTP.Compressor:=TIdCompressorZLib; weglasse, dann sehe ich, dass ein gezippter String kommt
So, später schaue ich mir dann mal WireShark ohne Firewall an.
Das kannste auch so machen, natürlich. Du könntest den Content-Encoding Header mit PHP dann auch selbst setzen um standardkonform zu bleiben.
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#5

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 13:41
Du könntest den Content-Encoding Header mit PHP dann auch selbst setzen um standardkonform zu bleiben.
Mich würde interessieren wie das geht. Das wäre mir lieber, wenn das klappt.

wenn ich ob_start('ob_gzhandler'); in php weglasse, wird nicht gezippt.

 AddOutputFilterByType DEFLATE text/php text/plain bringt nichts

Geändert von luisk (29. Mai 2016 um 13:48 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#6

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 14:34
bei das Entzippen über die Indy-Komponente funktioniert anscheinend nur,
wenn der Webserver das Zippen unterstützt:
daher:
Delphi-Quellcode:
if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip'))
   ob_start('ob_gzhandler');
else
   ob_start();
  Mit Zitat antworten Zitat
Benutzerbild von Valle
Valle

Registriert seit: 26. Dez 2005
Ort: Karlsruhe
1.223 Beiträge
 
#7

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 14:35
Du könntest den Content-Encoding Header mit PHP dann auch selbst setzen um standardkonform zu bleiben.
Mich würde interessieren wie das geht. Das wäre mir lieber, wenn das klappt.
Code:
header('Content-Encoding: gzip');
Valentin Voigt
BOFH excuse #423: „It's not RFC-822 compliant.“
Mein total langweiliger Blog
  Mit Zitat antworten Zitat
Benutzerbild von luisk
luisk

Registriert seit: 18. Mär 2009
402 Beiträge
 
#8

AW: PHP gzcompress(); Delphi ZDecompressStr ( ) Data error

  Alt 29. Mai 2016, 22:09
Jetzt würde mich doch noch interessieren, wie man
einen PHP gzcompress()string mit Delphi ZDecompressStr() entpacken kann.

Ich vermute, da muss die byte-Reihenfolge getauscht werden
https://de.wikipedia.org/wiki/Byte-Reihenfolge
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:15 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz