Extraire le contenu d'un zip directement sur son FTP chez free

Dans cette article nous allons voir comment procéder pour dézippé le contenu d’une archive directement sur son FTP free. Ceci peut être très intéressant si on a plusieurs (beaucoup) fichiers à envoyer sur le ftp, parfois ce genre d’upload peut s’avérer très difficile en fonction de la connexion, du logicile client FTP, mais aussi de l’humeur du serveur FTP de chez free. On peut se retrouver avec un certain nombre de fichiers qui ne seront pas envoyé (perdus en route ?!).

L’astuce consiste à mettre tous ses fichiers dans ZIP, uploader le zip sur le FTP et l’extraire sur place avec script PHP. Parce que envoyer UN SEUL fichier quelque soit sa taille, est toujours plus simple que d’en envoyer 36 000.

Pour commencer il faut savoir que Free ne propose aucune librairie PHP pour gérer les archives, donc nous utiliserons une classe de substitution, pour l’exemple, on va utiliser pclzip.

Maintenant, il faut créer un fichier ZIP (test.zip pour l’exemple) dans lequel on mettra tous nos fichiers à uploader sur le FTP.

Ensuite, il faut créer un fichier php (extract.php pour l’exemple) dans lequel on mettra le code suivant (à adapter selon votre cas) :

//Extrait de la documentation de la class.
require_once('pclzip.lib.php');
$archive = new PclZip('test.zip'); //METTRE LE VRAI NOM DU ZIP ;)
//Extrait dans le repertoire courant.
if ($archive->extract() == 0) {
      die("Error : ".$archive->errorInfo(true));
}

maintenant on se retrouve avec 3 fichiers :

  1. extract.php
  2. pclzip.lib.php
  3. test.zip

On peut maintenant envoyer nos 3 fichiers dans le répertoire sensé accueillir les fichiers finaux (contenus dans le zip) sur le FTP.

maintenant prendre son navigateur et aller à l’url http://adresse_du_site.free.fr/repertoire/extract.php

et le tour est joué 🙂

N.B. Cette procédure et valable pour tout hébergement mutualisé (ou pas) ne proposant pas les extensions PHP Zlib ou équivalent.

Share

Installer PHPDoc et générer une documentation

Dans cet article nous allons voir comment à partir d’un code source bien commenté, générer une documentation comme on aimerait avoir pour tout projet ou application digne de son nom.

Pour cela nous allons utiliser PHPDocumentor. qui va nous permetre de générer une documentation à paritr des sources de notre projet.

Il faut d’abord l’installer avec la commande suivante :

pear install phpdocumentor

(si pear n’est pas installé faites un apt-get install php-pear)

Si vous rencontrez un problème de dépassement de mémoire alouée avec PHP, allez dans /etc/php5/cli/php.ini et augmenter cette limite (il s’agit du paramètre memory_limit).

création d’un fichier de configuration pour le projet :

pour générer la documentation d’un projet nous avons besoin d’un fichier de configuration par projet, en voici un exemple :
fichier nom_du_projet.conf :

[Parse Data]
title = Titre de la documentation
hidden = false
parseprivate = off
javadocdesc = off
defaultcategoryname = Documentation
defaultpackagename = Projet
target = /PATH/OU/SERA/ENREGISTRE/LA/DOCUMENTATION
readmeinstallchangelog = README, INSTALL, FAQ, LICENSE
directory =   /PATH/VERS/LE/PROJET
ignore = templates/,test*.php
sourcecode = on
output=HTML:frames:earthli

et pour tester exécutez la commande suivante (après avoir créé le répertoire cible de la documentation)

phpdoc -c nom_du_projet.conf

et voilà, la génération prend un peu de temps, en fonction de la machine et de la taille du projet.

Share

Géolocalisation avec l'API Google et PHP

Parmi tous les services que propose les API google, on peut trouver des choses assez intéressantes, surtout en terme de géolocalisation avec l’API google maps et surtout très pratiques, dernièrement j’ai eu l’occasion de travailler avec le web service de géolocalisation, un outil très simple à utiliser et très pratique.

le but de la manipulation est d’obtenir la latitude et la longitude d’un point à partir de son adresse, pour cela, rien de bien méchant :

$address = 'notre adresse' //exemple : 5 rue du taur 31000 Toulouse
 
$request = 'http://maps.google.com/maps/geo?';
$request .='q='.urlencode($address);
$request .='&key='.GOOGLE_API_KEY ; // Vous devez en avoir une comme pour toutes les API google.
$request .='&output=csv'; // on peut choisir d'autres format, c'est très bien expliqué dans lien du web service
 
$response = @file_get_contents($request); // notre réponse est composée de 4 parties.
 
//exemple de réponse : 200,6,42.730070,-73.690570
//200 code réponse (200 => ok)
//6 degré de précision
//et les deux dernier sont les coordonnées du point que nous cherchons a géolocaliser.

et voilà avec ce bout de code très simple nous avons géolocalisé une adresse postale, chose très pratique, mais n’oublier pas la limitation qu’impose Google (50 000 requêtes par tranche de 24 heures).

Share

Comment convertir un texte en UTF-8

voici une fonction simple mais efficace pour convertir un texte en UTF-8 sans se préoccuper de sa provenance (encodage d’origine).

setlocale(LC_ALL, 'fr_FR.utf8'); //selon la configuration du serveur cela peut être : fr_FR
 
mb_detect_order(array('UTF-8', 'ISO-8859-1', 'ISO-8859-15', 'Windows-1252')); //l'extention mb_string est installée par defaut sur php5
function toUTF8($string){
 
   $from = mb_detect_encoding($string);
 
if ($from != 'UTF-8') {
 
      $string = mb_convert_encoding($string, 'UTF-8', $from);
 
   }
 
return $string;
 
}
Share

L'internationalisation en extension PHP

L’extension d’internationalisation est de localisation de PHP vient d’être annoncée en version Bêta, elle sera incluse dans PHP 5.3 (encore en développement).

Voici les premières classes disponibles :

  • Collator : Manipulation de chaînes ;
  • NumberFormatter : Manipulation de nombres ;
  • Locale : Informations sur la Locale ;
  • Normalizer : Uniformisation de texte en fonction de la locale ;
  • MessageFormatter : Construction abstraite de texte à partir des autres objets de l’extension.

Collator et FormatNumber permettent de travailler avec des chaînes et avec des nombres, de manière indépendante de la langue (ex : « français ») et de la localisation (ex : « fr-CA » ou « fr-FR »).
Locale et Normalizer permettent d’intéragir plus en détail avec la localisation et avec du texte localisé.
MessageFormatter est le maître d’orchestre, un nouveau sprintf() en quelque sorte.

L’annonce : http://php100.wordpress.com/2007/12/12/icuphplove/
La documentation : http://docs.php.net/manual/en/book.intl.php
Téléchargement : http://pecl.php.net/package/intl

Source : Developpez.com

Share