IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fonction unzip à adapter [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut Fonction unzip à adapter
    Bonjour,

    J'essaie d'appliquer une fonction pour décompresser un zip. ça me retourne un message d'erreur. all to undefined function zip_open()
    C'est un vieux code que j'ai récupérer et j'ai l'impression qu'il ne fonctionne pas sous php 5.2
    Je ne sais pas par ou commencer, si quelqu'un pouvait m'orienter, ça serait bien sympa.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    function unzip($file, $path='', $effacer_zip=false){
    	if(!file_exists($file)){
    		echo "Le fichier ".$file." n'existe pas <br />";
    		exit;
    	}
    	// Cas d'un serveur Windows = on transforme notre chemin de fichier
    	if(isset($_SERVER['SystemRoot'])){
    		$file_array=explode("/",$file);
    		// on vérifie si on utilise la règle de nommage windows ou pas (si on a un array en faisant un explode de /
    		if(count($file_array)>1){
     
    			$dossier_en_cours=getcwd();
    			$dossier_en_cours_array=explode('\\',$dossier_en_cours);
     
    			$compteur_montant=0;
    			for($i=0; $i<count($file_array); $i++){
    				if($file_array[$i]==".."){
    					// on doit remonter de $compteur_montant niveaux
    					$compteur_montant++;
    				}else{
    					$file_array_final[]=$file_array[$i];
    				}
    			}
    			$file="";
    			for($i=0; $i<count($dossier_en_cours_array)-$compteur_montant; $i++){
    				$file.=$dossier_en_cours_array[$i]."\\";
    			}
    			for($i=0; $i<count($file_array_final); $i++){
    				$file.=$file_array_final[$i];
    				// on ajoute le \ si et seulement si on est encore dans les dossiers
    				if($i<count($file_array_final)-1){
    					$file.="\\";
    				}
    			}
    		}
    	}
    	$tab_liste_fichiers = array(); //Initialisation
    	if(!is_file($file)){
    		echo "le fichier zip n'est pas un fichier valide ou n'existe pas<br />".$file;
    		return false;
    	}else{
    		$zip = zip_open($file);
    		if ($zip){
    			//Pour chaque fichier contenu dans le fichier zip
    			while ($zip_entry = zip_read($zip)){
    				if (zip_entry_filesize($zip_entry) > 0){
    					$complete_path = $path.dirname(zip_entry_name($zip_entry));
    					/*On supprime les éventuels caractères spéciaux et majuscules*/
     
    					$nom_fichier = zip_entry_name($zip_entry);
    					//$nom_fichier = strtr($nom_fichier,"ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ","AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn");
    					//$nom_fichier = strtolower($nom_fichier);
    					//$nom_fichier = ereg_replace('[^a-zA-Z0-9.]','_',$nom_fichier);
     
    					/*On ajoute le nom du fichier dans le tableau*/
    					array_push($tab_liste_fichiers,$nom_fichier);
     
    					$complete_name = $path.$nom_fichier; //Nom et chemin de destination
     
    					if(!file_exists($complete_path)){
    						$tmp = '';
    						foreach(explode('/',$complete_path) AS $k){
    							$tmp .= $k.'/';
     
    							if(!file_exists($tmp)){
    								mkdir($tmp, 0755);
    							}
    						}
    					}
     
    					/*On extrait le fichier*/
    					if (zip_entry_open($zip, $zip_entry, "r")){
    						$fd = fopen($complete_name, 'w');
    						print "Taille du fichier $complete_name : ".zip_entry_filesize($zip_entry)."<br>\n";
    						fwrite($fd, zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)));
    						fclose($fd);
    						zip_entry_close($zip_entry);
    					}
    				}
    			}
    			zip_close($zip);
    			/*On efface éventuellement le fichier zip d'origine*/
    			if ($effacer_zip === true){
    				unlink($file);
    			}
    		}
    		return $tab_liste_fichiers;
    	}// Fin fichier présent ok
    }// fin de la fonction unzip
    Merci d'avance et bonne journée,

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut
    Pour commencer, en général le meilleur endroit c'est la doc de la fonction
    Sur cette page, tu peux voir les pré-requis :
    (PHP 4 >= 4.1.0, PHP 5 >= 5.2.0, PECL zip >= 1.0.0)
    Donc première vérification : as-tu PHP >= 5.2 ?
    Si c'est le cas, est-ce que l'extension Zip est activée ?

  3. #3
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    Merci pour la doc, je vais regarder.
    je suis sous
    Version Apache 2.2.15
    Version PHP 5.2.13
    Je n'ai pas activé l'extension Zip. Je vais essayer de trouver comment on fait.

    Merci en tout cas

  4. #4
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    Je cherche depuis tout à l'heure mais je ne comprends pas ce que veut dire "activer l'extension zip". Si quelqu'un pouvait m'expliquer, ça m'aiderait beaucoup.

    Merci...

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Pierrea4564 Voir le message
    Je cherche depuis tout à l'heure mais je ne comprends pas ce que veut dire "activer l'extension zip". Si quelqu'un pouvait m'expliquer, ça m'aiderait beaucoup.

    Merci...
    tout est dans la doc ...
    http://www.php.net/manual/fr/install...extensions.php

  6. #6
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    Bonjour,

    Je reviens au sujet de ma fonction unzip.
    J'ai bien compris qu'il fallait que j'installe l'extension zip pecl.
    Seulement, d'après ce que je lis sur internet, il faut récupérer l'extension avec ce code :
    wget http://pecl.php.net/get/zip
    Seulement, désolé d'avance pour cette question qui est surement très nulle pour un pro, mais ou est ce que je dois mettre cette ligne de code.

    Je patauge complètement
    merci d'avance

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pas besoin de PECL l’extension est en natif depuis longtemps, t'as le php_zip.dll dans ton dossier des extensions ?

  8. #8
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    Je suis sous Linux

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Pierrea4564 Voir le message
    Je suis sous Linux
    quelle distrib ?

  10. #10
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    debian

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'as une vielle version ? parce que par défaut elle y est, que donne une php -m

  12. #12
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    Non, la version n'est pas vieille je pense. Mais c'est quoi une php -m?

  13. #13
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Pierrea4564 Voir le message
    Non, la version n'est pas vieille je pense. Mais c'est quoi une php -m?
    en commande tu tapes php -m

  14. #14
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    le php -m ne fonctionne pas, je pense que je m'y prends mal. Mais en attendant de trouver, voici ce que donne une phpinfo
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Configure Command	 './configure' '--enable-bcmath' '--enable-calendar' '--enable-exif' '--enable-ftp' '--enable-gd-native-ttf' '--enable-libxml' '--enable-magic-quotes' '--enable-mbstring' '--enable-pdo=shared' '--enable-soap' '--enable-sockets' '--prefix=/usr/local' '--with-apxs2=/usr/local/apache/bin/apxs' '--with-curl=/opt/curlssl/' '--with-freetype-dir=/usr' '--with-gd' '--with-imap=/opt/php_with_imap_client/' '--with-imap-ssl=/usr' '--with-jpeg-dir=/usr' '--with-kerberos' '--with-libdir=lib64' '--with-libexpat-dir=/usr' '--with-libxml-dir=/opt/xml2' '--with-libxml-dir=/opt/xml2/' '--with-mcrypt=/opt/libmcrypt/' '--with-mhash=/opt/mhash/' '--with-mime-magic' '--with-mysql=/usr' '--with-mysql-sock=/var/lib/mysql/mysql.sock' '--with-mysqli=/usr/bin/mysql_config' '--with-openssl=/usr' '--with-openssl-dir=/usr' '--with-pcre-regex=/opt/pcre' '--with-pdo-mysql=shared' '--with-pdo-sqlite=shared' '--with-pic' '--with-png-dir=/usr' '--with-sqlite=shared' '--with-tidy=/opt/tidy/' '--with-ttf' '--with-xmlrpc' '--with-xpm-dir=/usr' '--with-xsl=/opt/xslt/' '--with-zlib' '--with-zlib-dir=/usr'
    Server API	Apache 2.0 Handler
    Virtual Directory Support	disabled
    Configuration File (php.ini) Path	/usr/local/lib
    Loaded Configuration File	/usr/local/lib/php.ini
    Scan this dir for additional .ini files	(none)
    additional .ini files parsed	(none)
    PHP API	20041225
    PHP Extension	20060613
    Zend Extension	220060519
    Debug Build	no
    Thread Safety	disabled
    Zend Memory Manager	enabled
    IPv6 Support	enabled
    Registered PHP Streams	https, ftps, compress.zlib, php, file, data, http, ftp
    Registered Stream Socket Transports	tcp, udp, unix, udg, ssl, sslv3, sslv2, tls
    Registered Stream Filters	zlib.*, convert.iconv.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed
     
    This program makes use of the Zend Scripting Language Engine:
    Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies

  15. #15
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    c'est quelle version de Debian que t'as ? t'as fait une install spécial ou natif pour installer PHP ?

  16. #16
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    tout est natif, je n'ai rien installé. Par contre, je ne sais pas comment trouver la version de debian.

  17. #17
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    y'a jamais eu de 5.2.13 pour Debian

  18. #18
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    En faisant des recherche sur le serveur, voila ce que j'ai trouvé.
    Je me suis donc peut être trompé. La distrib serait plutôt unix, non?

    Server Version: Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.13

  19. #19
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par Pierrea4564 Voir le message
    La distrib serait plutôt unix, non?
    mais non


    bref fait un


  20. #20
    Membre averti
    Inscrit en
    Novembre 2009
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 47
    Par défaut
    Déjà merci beaucoup pour ton aide.
    J'y vois beaucoup plus clair depuis ce matin, et je sens que je suis pas loin d'arriver à installer cette extension.

    Alors voici quelques infos :
    En faisant un cat /proc/version :

    Linux version 2.6.18-194.3.1.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-48)) #1 SMP Thu May 13 13:08:30 EDT 2010

    En faisant un php -m
    [PHP Modules]
    bcmath
    calendar
    ctype
    curl
    date
    dom
    exif
    filter
    ftp
    gd
    hash
    iconv
    imap
    json
    libxml
    mbstring
    mcrypt
    mhash
    mime_magic
    mysql
    mysqli
    openssl
    pcre
    PDO
    pdo_mysql
    pdo_sqlite
    posix
    Reflection
    session
    SimpleXML
    soap
    sockets
    SPL
    SQLite
    standard
    tidy
    tokenizer
    xml
    xmlreader
    xmlrpc
    xmlwriter
    xsl
    zlib

    Je me sers maintenant de ce tuto (2.1.2.2. Dynamique) :
    http://julp.developpez.com/php/zip/

    Seulement, quand je fais cette commande (j'ai uplaoder sur mon ftp l'extension déjà dézipée dans le dossier php):
    cd /home/wwwlogit/php
    phpize
    ./configure
    make
    make install

    Voila ce que j'ai :
    root@web [~]# cd /home/wwwlogit/php
    root@web [/home/wwwlogit/php]# phpize
    Cannot find config.m4.
    Make sure that you run '/usr/local/bin/phpize' in the top level source directory of the module

    root@web [/home/wwwlogit/php]# ./configure
    -bash: ./configure: Aucun fichier ou répertoire de ce type
    root@web [/home/wwwlogit/php]# make
    make: *** Pas de cibles spécifiées et aucun makefile n'a été trouvé. Arrêt.
    root@web [/home/wwwlogit/php]# make install

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Fonction Excel Adapter a sql =SI(ESTTEXTE(O11);"ok";"pas ok")
    Par superthx dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/07/2010, 17h13
  2. Réponses: 1
    Dernier message: 10/02/2009, 17h28
  3. Problème d'accent avec la fonction Unzip
    Par khrysk dans le forum ODI (ex-Sunopsis)
    Réponses: 1
    Dernier message: 29/09/2008, 16h25
  4. adapter l'entrée en fonction de boutons radio
    Par allowen dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 31/08/2005, 13h51
  5. Adapter la fonction de recherche de Plone/Zope
    Par StarNab dans le forum Zope
    Réponses: 2
    Dernier message: 07/04/2005, 16h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo