View Full Version : Aiuto con php
Perchè se scrivo $zip = zip_open("/tmp/test2.zip");
ottengo questo errore: Fatal error: Call to undefined function zip_open() in C:\Documents and Settings\tt024088\Desktop\moodle\moodle\zip.php on line 3
Come posso risolvere il problema. C'è qualcosa da modificare nella configurazione?
Non hai abilitato mod_zip in php.ini
Ciao ho guardato nel file php.ini ma le uniche voci che trovo con "zip" sono:
;extension=php_zip.dll
;extension=php_zlib_filter.dll
Dato che sono un novellino :cry: potresti spiegarmi meglio cosa devo fare.
Grazie per l`aiuto.
Ciao ho guardato nel file php.ini ma le uniche voci che trovo con "zip" sono:
;extension=php_zip.dll
;extension=php_zlib_filter.dll
Dato che sono un novellino :cry: potresti spiegarmi meglio cosa devo fare.
Grazie per l`aiuto.Quelle due direttive sono "commentate", devi togliere il ';' per attivarle!
EDIT: per le funzioni zip_xxx dovrebbe bastare solo la php_zip.dll
l`ho fatto e riavviando apache mi dice che non e` presente il file php_zip.dll nella cartella ext di php. Allora ho scaricato il modulo apposito da pecl (zip-1.7.4) e scompattando il file ottengo un file xml dei file .c una cartella chiamata lib con altri file.c.
Cosa devo fare ora?
l`ho fatto e riavviando apache mi dice che non e` presente il file php_zip.dll nella cartella ext di php. Allora ho scaricato il modulo apposito da pecl (zip-1.7.4) e scompattando il file ottengo un file xml dei file .c una cartella chiamata lib con altri file.c.
Cosa devo fare ora?No, quelli sono i sorgenti ... se hai l'ambiente di sviluppo adatto puoi provare a compilarli.
Hai il PHP 4 o 5??? Io per il 5 uso il pacchetto zip con i binari per Windows ma in effetti vedo adesso che la php_zip.dll non c'è. :p
Se anche tu hai la 5, vai su http://www.php.net/downloads.php e scarica il package "Collection of PECL modules ...". Lì dentro ci trovi quella DLL.
ho scaricato il collection of pecl, ho messo il file php_zip.dll nella relativa cartella e ho riprovato. L`errore che mi da questa volta e`: impossibile trovare il punto d`ingresso 2Error della procedura nella libreria di collegamento dinamico php5ts.dll?
Puo` essere un errore dovuto alla differente versione di php (il file e` della 5.1.6 mentre sul pc ho la 5.1.1.)?
ho scaricato il collection of pecl, ho messo il file php_zip.dll nella relativa cartella e ho riprovato. L`errore che mi da questa volta e`: impossibile trovare il punto d`ingresso 2Error della procedura nella libreria di collegamento dinamico php5ts.dll?
Puo` essere un errore dovuto alla differente versione di php (il file e` della 5.1.6 mentre sul pc ho la 5.1.1.)?Potrebbe essere quello il problema ma non ne posso essere sicuro.
Comunque vai qui: http://it.php.net/releases/index.php
e scarica il pacchetto PECL per la tua versione di php.
Era quello il problema. Ho risolto. Grazie
Mi si è verificato questa problema ora:
nella cartella www di easyphp ho creato una cartella che si chiama prova al cui interno ho un file .zip che si chiama fabio. Ho creato poi all`interno della stessa cartella prova un file.php che contiene l`istruzione:
$zip = zip_open("/prova/fabio.zip");
ma al momento di eseguirlo mi da l`errore
Warning: zip_open() Cannot open zip archive \prova\fabio.zip in c:\documents and settings\tt024088\desktop\easyphp1-8\www\prova\leggizip.php on line 3
Cosa puo` essere? un errore di percorso? Se si qual`e` quello giusto....
Aiutooo :muro:
Mi si è verificato questa problema ora:
nella cartella www di easyphp ho creato una cartella che si chiama prova al cui interno ho un file .zip che si chiama fabio. Ho creato poi all`interno della stessa cartella prova un file.php che contiene l`istruzione:
$zip = zip_open("/prova/fabio.zip");Occhio che zip_open (come tutte le altre funzioni che hanno a che fare con dei file), prende in input il nome di un file, non un URL!!
Se la tua intenzione era quella di fare riferimento al file fabio.zip nella directory 'prova' presente sotto la root del sito, devi usare:
"${_SERVER['DOCUMENT_ROOT']}/prova/fabio.zip"
${_SERVER['DOCUMENT_ROOT']}/prova/fabio.zip"
Cosa intendi con server document root????
Sto lavorando in locale per cui ad esempio se visualizzo il file ciccio.php sotto la mia cartella zip il percorso che mi segna e` questo:
http://localhost/zip/ciccio.php (considerato che zip si trova sotto www).
detto cio` cosa dovrei scrivere per ${_SERVER['DOCUMENT_ROOT']}?
Grazie mille.
Cosa intendi con server document root????
Sto lavorando in locale per cui ad esempio se visualizzo il file ciccio.php sotto la mia cartella zip il percorso che mi segna e` questo:
http://localhost/zip/ciccio.php (considerato che zip si trova sotto www).
detto cio` cosa dovrei scrivere per ${_SERVER['DOCUMENT_ROOT']}?Allora: $_SERVER['DOCUMENT_ROOT'] è una variabile impostata da PHP per indicare il path locale che punta alla root del sito. Il path è quello configurato nel server web.
dove la trovo questa variabile?
in php.ini o che altro?
sotto quale nome?
Grazie ancora
dove la trovo questa variabile?
in php.ini o che altro?
sotto quale nome?La 'root' del sito la si configura nel web server.
Con Apache si usa la direttiva "DocumentRoot" nel file httpd.conf
la document root che ho in apache e` questa:
DocumentRoot "C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www"
Ora tornando al discorso precedente che c`e` devo scrivere????? :muro:
la document root che ho in apache e` questa:
DocumentRoot "C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www"
Ora tornando al discorso precedente che c`e` devo scrivere????? :muro:Non devi scrivere nulla!!!!!
Quella è la directory sotto cui tu metti i file per il tuo sito.
Quando il tuo script viene eseguito, $_SERVER['DOCUMENT_ROOT'] contiene il path che hai appena riportato!
Riepilogando
www
Prova
fabio.zip
file.php che continene l`istruzione $zip = zip_open("/prova/fabio.zip");
e
DocumentRoot "C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www"
qual`e` la soluzione?
Ps: andbin mi mandi via mp il tuo indrizizzo che lo aggiungo al messenger, almeno ne parliamo in tempo reale?
Grazie ancora
Riepilogando
www
Prova
fabio.zip
file.php che continene l`istruzione $zip = zip_open("/prova/fabio.zip");
e
DocumentRoot "C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www"
qual`e` la soluzione? :stordita: Credevo che fosse chiaro ....
$zip = zip_open("$_SERVER['DOCUMENT_ROOT']/prova/fabio.zip");Quando il tuo script viene eseguito, la zip_open aprirà il file:
C:/Documents and Settings/tt024088/Desktop/EasyPHP1-8/www/prova/fabio.zip
Non so come essere più chiaro ...
vBulletin® v3.6.4, Copyright ©2000-2026, Jelsoft Enterprises Ltd.