18 mars 2008 - 23:16Forcer le téléchargement d’un fichier avec PHP

Dance cet article nous allons voir comment forcer le navigateur à télécharger un fichier (n’importe lequel) au lieux de l’ouvrir. Pour cela nous allons utiliser les Headers qu’envoie le serveur au navigateur (fonction header de php).

Voici le code a utiliser :


<?php 
 
//date actuelle
$date gmdate('D, d M Y H:i:s');

header("Content-Type: text/xml"); //Ici par exemple c'est pour un fichier XML, a changer en fonction du type mime du fichier voulu.
header('Content-Disposition: attachment; filename=NOM_FICHIER.xml');
header('Last-Modified: '$date ' GMT');
header('Expires: ' $date);
//header specifique IE :s parce que sinon il aime pas
if(preg_match('/msie|(microsoft internet explorer)/i'$_SERVER['HTTP_USER_AGENT'])){
  
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  
header('Pragma: public');
}else{
  
header('Pragma: no-cache');
}

echo 
$CONTENU_DE_NOTRE_FICHIER// ou readfile('CHEMIN_FICHIER'); En fonction du type de fichier. ?>

Le type Mime doit être celui du fichier qu’on veut pouvoir télécharger (liste des types mime disponibles). En voici quelques exemples :

image GIF : image/gif
fichier XML : text/xml
fichier rtf : application/rtf
fichier avi : video/msvideo

Maintenant à vos fichiers dl.php ;-)

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (5 votes, note : 5 sur 5)

1 Commentaire | Catégorie : PHP / MySQL, Programmation | Imprimer cet article Imprimer cet article


16 mars 2008 - 18:13Extraire 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) :


<?php 
//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.

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (6 votes, note : 4.83 sur 5)

4 Commentaires | Catégorie : PHP / MySQL, Programmation | Imprimer cet article Imprimer cet article

11 mars 2008 - 0:18Protéger un répertoire par htaccess

Le but de cet article est montrer comment protéger un répertoire par un htaccess.

pour cela il faut d’abord créer un fichier .htaccess à la racine du répertoire, ce fichier doit contenir les lignes suivantes (a adapter selon la configuration/ besoins) :

AuthName "Page protégée"
AuthType Basic
AuthUserFile "/CHEMIN/VERS/LE/FICHIER/.htpasswd"
Require valid-user

en suite il faut créer un fichier .htpasswd qui lui contiendra les couples login/mot de passe qui auront accès au répertoire protégé.
pour cela exécutez la commande suivante :

htpasswd -c /CHEMIN/VERS/LE/FICHIER/.htpasswd LOGIN

-c pour créer un nouveau fichier .htpasswd (a ne pas utiliser si vous ajouter un utilisateur à un fichier existant).
il vous sera ensuite demandé d’entrer le mot de passe 2 fois, faites le, et le tour est joué.

pour plus de renseignement sur la commande htpasswd, voici l’écran d’aide de ladite commande :

$ htpasswd
Usage:
        htpasswd [-cmdpsD] passwordfile username
        htpasswd -b[cmdpsD] passwordfile username password
        htpasswd -n[mdps] username
        htpasswd -nb[mdps] username password

 -c  Create a new file.
 -n  Don't update file; display results on stdout.
 -m  Force MD5 encryption of the password.
 -d  Force CRYPT encryption of the password (default).
 -p  Do not encrypt the password (plaintext).
 -s  Force SHA encryption of the password.
 -b  Use the password from the command line rather than prompting for it.
 -D  Delete the specified user.
On Windows, NetWare and TPF systems the '-m' flag is used by default.
On all other systems, the '-p' flag will probably not work.

notez aussi que pour que cette protection fonctionne, il est obligatoire de ne pas avoir la directive apache AllowOverride a none, sinon le fichier .htaccess ne sera pas pris en compte, donc n’oubliez pas de la commenter ou l’enlever tout simplement si vous l’avez dans votre vhost

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (4 votes, note : 4.5 sur 5)

Pas de Commentaires | Catégorie : Linux, Programmation | Imprimer cet article Imprimer cet article

27 février 2008 - 15:05Gé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 :


<?php 
$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).

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (5 votes, note : 5 sur 5)

1 Commentaire | Catégorie : PHP / MySQL, Programmation | Imprimer cet article Imprimer cet article


25 février 2008 - 15:04Comment 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).


<?php 
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;

?>
1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (5 votes, note : 4.8 sur 5)

1 Commentaire | Catégorie : PHP / MySQL, Programmation | Imprimer cet article Imprimer cet article

15 décembre 2007 - 19:52L’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

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (5 votes, note : 4.8 sur 5)

Pas de Commentaires | Catégorie : PHP / MySQL | Imprimer cet article Imprimer cet article

13 décembre 2007 - 23:15Planète PHP

L’Association des Utilisateurs de PHP (AFUP) propose dès aujourd’hui un nouveau site ‘Planète PHP’.

Ce nouveau site regroupe l’ensemble des blogs et sites francophones parlant surtout de PHP.

Un très bon site dont la plus part des blogs partenaires sont très actifs sur la scene PHP. Un site complémentaire du site de Nexen.net

Planete PHP

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (1 votes, note : 5 sur 5)

Pas de Commentaires | Catégorie : Divers | Imprimer cet article Imprimer cet article


12 décembre 2007 - 21:14Le Web 3 à Paris, place aux conférences

Pendant 2 jours plus de 1800 participants, plus de 110 intervenants, sur plus de 6000m2 avec la présence des poids lourds du web ; Google, Microsoft, Facebook, etc. le Web 3 a tout pour être une réussite…

On remarquera que cette années les politiques ne sont plus sur la scène, normal y a plus d’élections ^^

En gros cette années les participants se sont concentré sur 3 thèmes :

  1. Un web encore plus social
  2. Un web plus mobile
  3. Encore plus de vidéo sur le web

c’est ce que sera le Web 3, autrement dit le web de demain, alors, allez tous vous inscrire sur des réseaux sociaux, achetez tous des Iphones ou des Nokia N95 8Go, et rendez-vous sur Youtube :-)

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (1 votes, note : 4 sur 5)

Pas de Commentaires | Catégorie : Divers | Imprimer cet article Imprimer cet article

11 décembre 2007 - 14:02Nexen : 33,29% des sites Web sous PHP en novembre 2007

es statistiques de diffusion PHP dans le monde pour novembre 2007 sont arrivées chez Nexen. PHP 5 toujours vigoureux, atteint la barre des 26 %. PHP 4.3 devrait lui passer derrière PHP 5.2 dans les prochains mois

28.7 millions de serveurs ont été testés durant le mois de novembre 2007, et 11.2 millions ont été retenus pour les statistiques. On remarque que PHP 5.2.x perdent du terrain, au profit de PHP 5.2.4. Autrement, PHP 4.4.x perd souvent des utilisateurs, sauf PHP 4.4.7.

PHP est présent sur 33,29% des sites Web au mois de novembre 2007. Les chiffres sont stables depuis le mois dernier, pour PHP comme pour ASP. La moyenne mondiale est de 26,13 % pour PHP 5.

Source : Toolinux.com

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (aucun vote)

Pas de Commentaires | Catégorie : PHP / MySQL | Imprimer cet article Imprimer cet article

5 décembre 2007 - 20:12Go PHP 5

PHP 4 a servi la communauté de développeurs pendant 7 ans et il continue a le faire, cependant il montre de plus en plus ses limites dues sûrement à son âge ;-). La plupart des défauts de PHP 4 ont été réparés par PHP 5, sorti il y a maintenant 3 ans, mais la transition du 4 au 5 a été lente et n’est toujours pas finie.

Les développeurs de PHP ne peut pas démultiplier les efforts et se consacrer entièrement à PHP 5 sans laisser tomber le support de PHP 4, ce dernier est toujours installé chez la majorité des hébergeurs web, et en cas de transition brusque les utilisateurs seraient obligés de changer/développer leurs applications et les rendre compatibles PHP 5 sans quoi elles seraient obsolètes, c’est pour cette raison que les hébergeurs ne peuvent mettre à jour leurs PHP aussi facilement que ça en a l’air.

C’est ce qui fait en sorte que la PHP Team ne peut laisser tomber le support de PHP 4 pour se consacrer pleinement à PHP 5, vu le nombre important de serveur toujours en PHP 4, c’est un peu le cercle vicieux et commence a peser lourd dans le développement de PHP. Mais la communauté de développeurs a compris que c’est dangereux et qu’il était temps de briser ce cercle, pour cela à partir du 5 février 2008 seuls les projets compatibles PHP 5.2 ou supérieurs seront agréés par l’équipe.

Espérant que cela donnera aux hébergeurs le courage / l’envie de mettre leurs serveurs à jour, et ainsi permettre à PHP 5 de se développer dans de bonnes conditions.

Pour plus d’informations sur le sujet, allez voir ce site

1 Etoile2 Etoiles3 Etoiles4 Etoiles5 Etoiles (aucun vote)

Pas de Commentaires | Catégorie : Divers, PHP / MySQL | Imprimer cet article Imprimer cet article