/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Længde af uncompressed GZ-fil
Fra : Kasper Johansen


Dato : 09-06-06 17:38

Hej gruppe.


Jeg vil gerne indlæse en meget stor GZ-fil. Jeg uncompresser den
on-the-fly via. gz-funktionerne.

For at fortælle brugeren, hvor langt han er nået, viser jeg en statusbar
(det skal måske siges, at jeg arbejder med en GTK-brugergrænseflade
sammen med PHP). Desværre ved jeg ikke, hvor langt jeg er nået, da jeg
jo kun kan tælle de ukomprimerede antal bytes (hvilket typisk kan ligge
mellem 0 - 12 ganges forskel af den oprindelig størrelse).

Har jeg en mulighed for at vide, hvor mange bytes det ukomprimerede
indhold af GZ-filen fylder? Eller på en anden måde vide hvor langt, jeg
er nået med indlæsningen af filen.


--
Med venlig hilsen
Kasper Johansen

 
 
Michael Rasmussen (09-06-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 09-06-06 19:02

On Fri, 09 Jun 2006 18:38:20 +0200, Kasper Johansen wrote:

>
> Har jeg en mulighed for at vide, hvor mange bytes det ukomprimerede
> indhold af GZ-filen fylder? Eller på en anden måde vide hvor langt, jeg
> er nået med indlæsningen af filen.
Nu ved jeg ikke, hvilken implementation du bruger, men hvis det er
denne: http://dk.php.net/manual/da/ref.zip.php
Så har den denne funktion: zip_entry_filesize
For et komplet eksempel, se ovenstående link.

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Kasper Johansen (09-06-2006)
Kommentar
Fra : Kasper Johansen


Dato : 09-06-06 20:41

Michael Rasmussen wrote:
> Nu ved jeg ikke, hvilken implementation du bruger, men hvis det er
> denne: http://dk.php.net/manual/da/ref.zip.php
> Så har den denne funktion: zip_entry_filesize
> For et komplet eksempel, se ovenstående link.

Det er zlib som bruges til gz, og det er den, som jeg bruger.
http://dk.php.net/manual/da/ref.zlib.php

--
Med venlig hilsen
Kasper Johansen

Michael Rasmussen (09-06-2006)
Kommentar
Fra : Michael Rasmussen


Dato : 09-06-06 22:01

On Fri, 09 Jun 2006 21:41:17 +0200, Kasper Johansen wrote:

>
> Det er zlib som bruges til gz, og det er den, som jeg bruger.
> http://dk.php.net/manual/da/ref.zlib.php

Hvis ikke du anvender php i safe_mode, kan du gøre følgende:
// getSize.php
<?php
$file = "test.gz";
$output = shell_exec("sh getSize.sh $file");
echo $output;
?>

// getSize.sh
#!/bin/sh

PATH=/bin:/usr/bin

gzip -l $1 | awk '/[0-9]/ {print $1}'

exit 0

[mir@loke:/tmp]$ php getSize.php
90833

--
Hilsen/Regards
Michael Rasmussen
http://keyserver.veridis.com:11371/pks/lookup?op=get&search=0xE3E80917


Kasper Johansen (10-06-2006)
Kommentar
Fra : Kasper Johansen


Dato : 10-06-06 00:40

Michael Rasmussen wrote:
> Hvis ikke du anvender php i safe_mode, kan du gøre følgende:
> // getSize.php
> <?php
> $file = "test.gz";
> $output = shell_exec("sh getSize.sh $file");
> echo $output;
> ?>
>
> // getSize.sh
> #!/bin/sh
>
> PATH=/bin:/usr/bin
>
> gzip -l $1 | awk '/[0-9]/ {print $1}'
>
> exit 0
>
> [mir@loke:/tmp]$ php getSize.php
> 90833

Hej igen Michael.

Tak for dit. Jeg prøver desværre at programmere et program der både er
cross-platform, og jeg kan derfor desværre ikke bruge løsningen.

Er det ikke muligt at gøre det på en PHP-only-måde?


--
Med venlig hilsen
Kasper Johansen

Bent Stigsen (10-06-2006)
Kommentar
Fra : Bent Stigsen


Dato : 10-06-06 03:02

Kasper Johansen wrote:
[snip]
> Er det ikke muligt at gøre det på en PHP-only-måde?

Tjo, hvis man gider. :)

Kun lige testet på fil lavet af PHP's egne funktioner, men der er vel
standard. Sålænge filen kun består af et dataset og den oprindelige fil
ikke var større end 4GB, så skulle den være god nok.

ref: http://www.rfc-archive.org/getrfc.php?rfc=1952

function gzfilesize($fname) {
$fp = fopen($fname, "r");
if (!$fp) return false;
if (fseek($fp, -4, SEEK_END)) {
$ISIZE = false;
} else {
$ISIZE = current(unpack("V", fread($fp, 4)));
}
fclose($fp);
return $ISIZE;
}


Noget spændende du er ved at lave?


/Bent

Kasper Johansen (10-06-2006)
Kommentar
Fra : Kasper Johansen


Dato : 10-06-06 11:37

Bent Stigsen wrote:
> Noget spændende du er ved at lave?

Det er et SQLite administrationsprogram. Jeg ved godt, at der allerede
er nogle derude, men jeg syntes, at det kunne være sjovt at lave sit eget :)

gz-funktionerne bliver brugt til at skrive dumps af databaserne.
Programmet bliver som sagt skrevet som et program ved hjælp af PHP-GTK.

Jeg har skrevet mere om det her (der er også links til source m.m.):
http://elg.lir.dk/?show=artikler_show&artikelid=50


--
Med venlig hilsen
Kasper Johansen

Bent Stigsen (11-06-2006)
Kommentar
Fra : Bent Stigsen


Dato : 11-06-06 03:08

Kasper Johansen wrote:

> Bent Stigsen wrote:
>> Noget spændende du er ved at lave?
>
> Det er et SQLite administrationsprogram. Jeg ved godt, at der allerede
> er nogle derude, men jeg syntes, at det kunne være sjovt at lave sit eget
> :)
>
> gz-funktionerne bliver brugt til at skrive dumps af databaserne.
> Programmet bliver som sagt skrevet som et program ved hjælp af PHP-GTK.
>
> Jeg har skrevet mere om det her (der er også links til source m.m.):
> http://elg.lir.dk/?show=artikler_show&artikelid=50

Ja, det var egentlig det jeg fiskede efter. :) Var lidt nysgerrig på hvordan
det (php-gtk) hang sammen, selvom jeg ikke plejer have tålmodighed til den
slags gui-pilleri.

Det ser ud til at blive meget godt.

/Bent

Michael Zedeler (10-06-2006)
Kommentar
Fra : Michael Zedeler


Dato : 10-06-06 00:51

Kasper Johansen wrote:
> Michael Rasmussen wrote:
>
>> Nu ved jeg ikke, hvilken implementation du bruger, men hvis det er
>> denne: http://dk.php.net/manual/da/ref.zip.php
>> Så har den denne funktion: zip_entry_filesize
>> For et komplet eksempel, se ovenstående link.
>
> Det er zlib som bruges til gz, og det er den, som jeg bruger.
> http://dk.php.net/manual/da/ref.zlib.php

Prøv at kigge på noterne til

http://dk.php.net/manual/da/function.gzseek.php

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
I am less likely to answer usenet postings by anonymous authors.
Visit my home page at http://michael.zedeler.dk/

Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408926
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste