Struktur Test *.gz per php
Simone
- php
HI
Wie kann ich eine Datei (.gz) per Php testen ob sie richtig erstellt wurde?
Ich erstelle alle 12h automatisch .gz Datein und mußte mit erstaunen festellen das die letzte Datei einen Fehler beim entpacken produziert.
Jetzt möchte ich das Format bzw. die Datei auf Fehler testen um dieses Problem auszuschließen und erst dann das Orginal (letzte Fassung) überschreiben bzw. ersetzen.
ein "is_readable" für *.gz ;0)
Danke Simone
Moin!
ein "is_readable" für *.gz ;0)
"gzip" is das Programm "-t" die Option für das Testen.
'gzip -t datei.gz; echo $?' liefert dann ein:
0- kein Fehler
oder eine Zahl für den Fehler zurück.
Du baust also bestens ein:
<?php
$intError=gzip -t datei.gz; echo $?
;
?>
in Dein PHP-Skript ein. Danach prüfst Du $intError
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
HI,
Das ist sehr interessant!
$intError=gzip -t datei.gz; echo $?
;
liefert eine 1 ( --fast compress faster)
Dennoch möchte ich keine Browserausgabe erzeugen.
wie bekomme ich den Rückgabewert ohne Browserausgabe (echo) in die Variable $intError?
Ok zur Not könnte ich die ganze Sache puffern wobei ich diesen Puffer schon für andere Fehlermeldungen nutze.
ob_start();
Danke Simone
Moin!
$intError=
gzip -t datei.gz; echo $?
;
liefert eine 1 ( --fast compress faster)Dennoch möchte ich keine Browserausgabe erzeugen.
wie bekomme ich den Rückgabewert ohne Browserausgabe (echo) in die Variable $intError?
Bei mir erzeugt das echo erwartungsgenäß keine Browserausgabe.
Hier der life-Test:
fastix@trainer:~> cat > test.php
<?php
$test=gzip -t 2005-07-06\_1-35.sql.gz; echo $?
;
echo "<hr>";
echo $test;
?>
fastix@trainer:~> php test.php
Content-type: text/html
X-Powered-By: PHP/4.3.3
<hr>0
fastix@trainer:~>
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
HI fastix
Vielleicht stehe ich auf einen falschen Bein ;o)
"echo" ist für mich eine Sprach-Konstrukt der am Browser eine Ausgabe erzeugt?
$test=gzip -t 2005-07-06\_1-35.sql.gz; echo $?
;
^^^^^
Wie auch immer, das Skript erzeuge-gz.php soll ohne Browserausgabe eine *.gz erzeugen und wird in die Index.php includiert.
friedfertig Grinse zurück
Simone
Moin!
"echo" ist für mich eine Sprach-Konstrukt der am Browser eine Ausgabe erzeugt?
Es flötet die Shell zu PHP, das tut dem Apache und dem Browser nicht weh.
Was hindert Dich daran, mein Beispielskript zu probieren? Was hindert Dich daran nachzulesen, was Backticks bewirken? Es handelt sich dabei um einen _grundlegenden_ Unterschied zum system()- Aufruf.
"echo" ist auch eine Anweisung der Shell. Genau die wird hier aufgerufen. Alle Ausgaben nach stdout landen in der Variablen links der in die Backticks eingeschlossenen Befehlssequenz.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Grundlage für Zitat #138.
HI,
Es flötet die Simone vorm schlafen gehen schnell, der fastix ist im Kopfe hell!
....
Was hindert Dich daran nachzulesen, was Backticks bewirken? Es handelt sich dabei um einen _grundlegenden_ Unterschied zum system()-Aufruf.
....
Backticks sind für mich eine neue Dimension meiner bescheidenen Programmierkenntnisse.
Ja, am Rande gab es dort irgendwo mal ein 'Ping' in einem Skript von mir. Dieses Ping war einfach da... aber was... und wie es das macht sehe ich mir Morgen an.
Nochmals danke fastix!
Simone
Moin!
Nochmals danke fastix!
Noch nicht ganz: Ich habe gerade gesehen, dass womöglich stderr dennoch ausgegeben wird. Leite das auf der Shell schon um:
<?php
$test=gzip -t 2005-07-06\_1-35.sql.gz 2> /dev/null; echo $?
;
echo "<hr>";
echo $test;
?>
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®