[ djblade @ 28.04.2006. 17:27 ] @
imali iko primjer kako ovo da uradim. gledao sam na php.net ali nije dovoljno

znaci trebami da fajlovi budu odzippovani u folderu gdje se nalazi sam zip file.

unaprijed hvala
[ w3bl0rd @ 28.04.2006. 18:48 ] @
http://www.php.net/manual/en/ref.zip.php
ne znam što je tu nejasno još dolje ispod imaš komentare i vidiš i sam da ljudi tu postuju i primjere i sve o tome tak da ne znam kaj nije jasno...
[ SmilieBG @ 28.04.2006. 19:10 ] @
obrati paznju na 2 stvari koje stoje na php.net

1. da mora biti compilirano uz php;
2. Note: Zip support before PHP 4.1.0 is experimental. This section reflects the Zip extension as it exists in PHP 4.1.0 and later.

Ja licno koristim exec(), ali opet, moja masina... :)

Poz,
Sale
[ djblade @ 30.04.2006. 02:16 ] @
pogledao sam kodove na php.net
nema nista nejasno tu.

interesuje me samo dje cu da stavim(extraktujem) zip-1.3.1.tgz. i sta nakon toga. trebali jos neka konfiguracija ili sta?

hvala puno
[ Nemanja Avramović @ 30.04.2006. 08:43 ] @
Pa to je valjda tarball a ne zip arhiva (edit) popularno nazvana targuzovan fajl/folder

[Ovu poruku je menjao JaHvram dana 30.04.2006. u 09:45 GMT+1]
[ SmilieBG @ 30.04.2006. 10:20 ] @
Pa ako vec nije, trebas da kopajliras uz php... Nije toliko bitno gde ce stajati...

Poz,
Sale
[ djblade @ 30.04.2006. 13:06 ] @
dobro znam da smaram

ali kako da kompajliram. mozel malo detaljnije. pretpostavite da sam glup pa probajte objasniti :D

pozdrav

[ SmilieBG @ 30.04.2006. 13:58 ] @
uf :(

Ajde vise detalja... Jel tvoj (kucni) server ili imas hosting negde ili ...?
Sta tacno hoces da postignes?
Verziju PHP-a koja je instalirana, sa svim opcijama...

Poz,
Sale
[ djblade @ 30.04.2006. 16:22 ] @
:D

ma ja kucni je server.

PHP Version 5.0.5



zip
Zip support enabled

zlib
ZLib Support enabled
Compiled Version 1.2.3
Linked Version 1.2.3

Directive Local Value Master Value
zlib.output_compression Off Off
zlib.output_compression_level -1 -1
zlib.output_handler no value no value


PHP Core
Directive Local Value Master Value
allow_call_time_pass_reference On On
allow_url_fopen On On
always_populate_raw_post_data Off Off
arg_separator.input & &
arg_separator.output & &
asp_tags Off Off
auto_append_file no value no value
auto_globals_jit On On
auto_prepend_file no value no value
browscap C:\Program Files\xampp\php\browscap\browscap.ini C:\Program Files\xampp\php\browscap\browscap.ini
default_charset no value no value
default_mimetype text/html text/html
define_syslog_variables Off Off
disable_classes no value no value
disable_functions no value no value
display_errors On On
display_startup_errors Off Off
doc_root no value no value
docref_ext no value no value
docref_root no value no value
enable_dl On On
error_append_string no value no value
error_log no value no value
error_prepend_string no value no value
error_reporting 2039 2039
expose_php On On
extension_dir C:\Program Files\xampp\php\ext\ C:\Program Files\xampp\php\ext\
file_uploads On On
highlight.bg #FFFFFF #FFFFFF
highlight.comment #FF8000 #FF8000
highlight.default #0000BB #0000BB
highlight.html #000000 #000000
highlight.keyword #007700 #007700
highlight.string #DD0000 #DD0000
html_errors On On
ignore_repeated_errors Off Off
ignore_repeated_source Off Off
ignore_user_abort Off Off
implicit_flush Off Off
include_path .;C:\Program Files\xampp\php\pear\ .;C:\Program Files\xampp\php\pear\
log_errors Off Off
log_errors_max_len 1024 1024
magic_quotes_gpc On On
magic_quotes_runtime Off Off
magic_quotes_sybase Off Off
mail.force_extra_parameters no value no value
max_execution_time 60 60
max_input_time 60 60
open_basedir no value no value
output_buffering no value no value
output_handler no value no value
post_max_size 16M 16M
precision 12 12
register_argc_argv On On
register_globals On On
register_long_arrays On On
report_memleaks On On
report_zend_debug On On
safe_mode Off Off
safe_mode_exec_dir no value no value
safe_mode_gid Off Off
safe_mode_include_dir no value no value
sendmail_from no value no value
sendmail_path no value no value
serialize_precision 100 100
short_open_tag On On
SMTP localhost localhost
smtp_port 25 25
sql.safe_mode Off Off
track_errors Off Off
unserialize_callback_func no value no value
upload_max_filesize 16M 16M
upload_tmp_dir C:\Program Files\xampp\tmp C:\Program Files\xampp\tmp
user_dir no value no value
variables_order EGPCS EGPCS
xmlrpc_error_number 0 0
xmlrpc_errors Off Off
y2k_compliance On On
zend.ze1_compatibility_mode Off Off


napravio sam jednu web galeriju. napravio sam upload fileova. zelim da kad uploadujem jedan zip file(sa slikama)
pokrenem skriptu i ona extraktuje sve iz tog zip file tako da galerija moze odma da uzima slike.

koristim sljedecu skriptu za extraktovanje koja uredno radi na web serveru (ne kucnom)

<?php
function unzip($dir, $file, $verbose = 0) {

$dir_path = "$dir$file";
$zip_path = "$dir$file.zip";

$ERROR_MSGS[0] = "OK";
$ERROR_MSGS[1] = "Zip path $zip_path doesn't exists.";
$ERROR_MSGS[2] = "Directory $dir_path for unzip the pack already exists, impossible continue.";
$ERROR_MSGS[3] = "Error while opening the $zip_path file.";

$ERROR = 0;

if (file_exists($zip_path)) {

if (!file_exists($dir_path)) {

mkdir($dir_path);

if (($link = zip_open($zip_path))) {

while (($zip_entry = zip_read($link)) && (!$ERROR)) {

if (zip_entry_open($link, $zip_entry, "r")) {

$data = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$dir_name = dirname(zip_entry_name($zip_entry));
$name = zip_entry_name($zip_entry);

if ($name[strlen($name)-1] == '/') {

$base = "$dir_path/";

foreach ( explode("/", $name) as $k) {

$base .= "$k/";

if (!file_exists($base))
mkdir($base);

}

}
else {

$name = "$dir_path/$name";

if ($verbose)
echo "extracting: $name<br>";

$stream = fopen($name, "w");
fwrite($stream, $data);

}

zip_entry_close($zip_entry);

}
else
$ERROR = 4;

}

zip_close($link);

}
else
$ERROR = "3";
}
else
$ERROR = 2;
}
else
$ERROR = 1;

return $ERROR_MSGS[$ERROR];

}



$error = unzip("./", "test", 1);

echo $error;
?>

hvala puno

pozdrav

[Ovu poruku je menjao djblade dana 30.04.2006. u 17:22 GMT+1]
[ SmilieBG @ 30.04.2006. 17:26 ] @
koliko vidim:

zip
Zip support enabled

php vec ima zip support enabled. Pod pretpostavkom da imas instaliran zip na kompu, ne moras nista vise da 'cackas' sem da programiras :)

Poz,
Sale

PS. ako ti izbacuje gresku, reci i koju :)
[ djblade @ 30.04.2006. 18:50 ] @
evo greske koju mi izbaci

Warning: zip_open() [function.zip-open]: Cannot open zip archive ./fotos.zip in C:\Program Files\xampp\htdocs\engram\zip.php on line 20
Error while opening the ./fotos.zip file.

file je tu.ne znam zasto ga nece otvoriti?!?!?

sve ovo isto na drugom serveru funkcionise

pozdrav
[ SmilieBG @ 30.04.2006. 20:39 ] @
pa znas kako, ja bi rekao da:

./fotos.zip

ne postoji

ocito radis na windows sistemu, a windows se ne snalazi sa direktorijumom ./

:)

prema tome, promeni u skripti koji fajl i gde da unzipuje ;)

Poz,
Sale
[ djblade @ 30.04.2006. 21:09 ] @
Citat:
SmilieBG: pa znas kako, ja bi rekao da:

./fotos.zip

ne postoji

ocito radis na windows sistemu, a windows se ne snalazi sa direktorijumom ./

:)

prema tome, promeni u skripti koji fajl i gde da unzipuje ;)

Poz,
Sale


upravu si

uradih to al opet

Warning: zip_open() [function.zip-open]: Cannot open zip archive fotos.zip in C:\Program Files\xampp\htdocs\engram\zip.php on line 23
Error while opening the fotos.zip file.copy OK

:(
za poludit
[ SmilieBG @ 30.04.2006. 21:48 ] @
daj onda deo koda gde unzipujes sa php-om...

Poz,
Sale
[ djblade @ 01.05.2006. 12:50 ] @
evo ga :D

<?php
function unzip($dir, $file, $verbose = 0) {

$dir_path = "$dir$file";
$zip_path = "$dir$file.zip";

if(copy ("index.php", "fotos/index.php"))
echo "copy OK";

$ERROR_MSGS[0] = "OK";
$ERROR_MSGS[1] = "Zip path $zip_path doesn't exists.";
$ERROR_MSGS[2] = "Directory $dir_path for unzip the pack already exists, impossible continue.";
$ERROR_MSGS[3] = "Error while opening the $zip_path file.";

$ERROR = 0;

if (file_exists($zip_path)) {

if (!file_exists($dir_path)) {

mkdir($dir_path);

if (($link = zip_open($zip_path))) {

while (($zip_entry = zip_read($link)) && (!$ERROR)) {

if (zip_entry_open($link, $zip_entry, "r")) {

$data = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
$dir_name = dirname(zip_entry_name($zip_entry));
$name = zip_entry_name($zip_entry);

if ($name[strlen($name)-1] == '/') {

$base = "$dir_path/";

foreach ( explode("/", $name) as $k) {

$base .= "$k/";

if (!file_exists($base))
mkdir($base);

}

}
else {

$name = "$dir_path/$name";

if ($verbose)
echo "extracting: $name<br>";

$stream = fopen($name, "w");
fwrite($stream, $data);

}

zip_entry_close($zip_entry);

}
else
$ERROR = 4;

}

zip_close($link);

}
else
$ERROR = "3";
}
else
$ERROR = 2;
}
else
$ERROR = 1;

return $ERROR_MSGS[$ERROR];

}



$error = unzip("", "fotos", 1);

echo $error;

if(copy ("index.php", "fotos/index.php"))
echo "copy OK";

?>
pozdrav i hvala ;)
[ SmilieBG @ 01.05.2006. 12:57 ] @
koje su vrednosti za:

$dir_path = "$dir$file";
$zip_path = "$dir$file.zip";

?

Poz,
Sale
[ djblade @ 01.05.2006. 18:19 ] @
$error = unzip("", "fotos", 1);

pozdrav
[ SmilieBG @ 01.05.2006. 18:31 ] @
Ajde drugacije da se izjasnim:

if (zip_entry_open($link, $zip_entry, "r"))

ne moze da otvori .zip jer mu verovatno ti govoris: fajl.zip se nalazi levo, a skripta trazi desno... :-)

Poz,
Sale
[ w3bl0rd @ 10.05.2006. 10:49 ] @
a da sva stvar nije možda do permisije fajla?