Archive pour le mot-clef ‘PHP’

My Tweet Cloud, retrouver les tags de vos tweets !

Samedi 7 mars 2009

Un nouveau service utilisant l’API Twitter, mais par n’importe lequel puisque c’est moi qu’il l’ai fait !!

My Tweet Cloud est un service permettant de générer un nuage de tags avec les “hashtags” contenus dans vos tweets. Si vous êtes un utilisateur de Twitter, vous avez probablement déjà utilisé des “hastags” (par exemple #twitter) dans vos tweets, dans l’idée qu’un jour peut-être vous retrouverez simplement un lien, une conversation ou juste pour donner un thème à ce que vous étiez en train de tweeter.

My Tweet Cloud

My Tweet Cloud vos propose, en donnant simplement votre nom d’utilisateur Twitter (et gratuitement), de générer un magnifique nuage de tags avec l’ensemble de vos tags contenu dans vos 200 derniers tweets. Ainsi, vous pourrez avoir une idée des thèmes les plus souvent abordés et vous pourrez surtout retrouver l’ensemble des tweets associés à ces tags.

Maintenant , vous pouvez donc tagguer activement vos tweets, vous pourrez les retrouver simplement !

J’ai généré mon nuage de tags, voilà ce que ça donne :

My Tweet Cloud, twitter tag cloud of @damdec

My Tweet Cloud est en ligne depuis aujourd’hui, n’hésitez pas à m’envoyer vos suggestions, idées, rapport de bugs, commentaires…! C’est une toute première version, j’ai encore quelques idées à ajouter donc cela risque d’évoluer rapidement. Pour suivre les évolutions de My Tweet Cloud, vous pouvez suivre @mytweetcloud sur Twitter ainsi que @damdec. N’hésitez pas à faire tourner l’info !

(My Tweet Cloud est développé en PHP/MySQL)

PHP 5.3 : toutes les nouveautés

Mardi 25 novembre 2008

PHP version 5.3 devrait arriver bientôt, on parle de début 2009, et je tenais à partager la série d’excellents billets écrit par Pascal Martin. Ce dernier nous liste les nouveautés de PHP 5.3 et explique le fonctionnement de chaque fonctionnalité, illustré par des exemples, le tout en français.

Bref, un grand bravo à lui et un grand merci !

Voici le sommaire de cette immanquable série pour tout développeur PHP :

Cette serie devrait se terminer par un ou 2 billets “en vrac” et une conclusion demain ou après demain.

Sortie de HTML Purifier 3.2.0

Lundi 3 novembre 2008

Petite news pour annoncer la sortie de la nouvelle version de HTML Purifier, la 3.2.0.

Logo HTML Purifier

HTML Purifier est une librairie écrite en PHP qui permet de filtrer du HTML pour en enlever le code “malicieux” qu’il pourrait contenir et pour le rendre “standard compliant”. À grand coups d’expressions régulières, cet outils surpuissant permet donc de lutter contre les failles XSS et permet, par exemple, de valider (W3C j’entends) le contenu d’un article écrit depuis un éditeur “wysiwig” (comme FCKeditor ou tinyMCE), c’est bluffant ! Contre partie, c’est très gourmand en ressources… mais bien utilisé c’est vraiment puissant.

Les nouveautés de cette nouvelle version : des bugs et vulnérabilités en moins, un “parsage” plus abouti, une gestion d’erreurs améliorée et plein d’autres choses… (cf la news officielle).

Si vous l’utilisez déjà, pensez à le mettre à jour, sinon, pensez à l’utiliser !

News en vrac

Jeudi 5 juin 2008

Une nouvelle version de jQuery est sortie, la 1.2.6. De gros gains de performances sont annoncés (voir ce tableau de benchmark), reste plus qu’a tester et vérifier que les extensions que vous utilisez sont toujours fonctionnelles… à vos scripts !

En parlant de benchmark, The PHP Benchmark propose un récapitulatif des comparaisons entre tout un tas de fonctions (print/echo,les boucles foreach/while…et des moins connus aussi).

Si vous êtes en rade de classes PHP en voilà 30 super pratiques !

Firefox 3 en version finale ne devrait plus tarder, la RC2 est disponible. N’oubliez pas de participer au grand record du monde de téléchargement de Firefox le jour de sa sortie (prévu mi-juin).

Si vous chercher du taf dans le monde PHP voilà un nouveau site spécialisé.

Enfin, un article très sympa sur la création de bookmarklet chez Tux-Planet

PHP et les try catch :: simple et propre

Jeudi 8 mai 2008

Dans les 10 commandements d’un bon développeur PHP objet, on retrouve la gestion des erreurs. En particulier, sur un site Web, il est préférable de voir apparaître une erreur très générique (”Une erreur est survenue, veuillez réessayer dans quelques instants ou contacter l’administrateur du site…“) plutôt qu’une grosse “Fatal Error…” qui en plus affiche une partie de l’arborescence du site… En fait impossible de catcher une fatal error ou une parse error directement, le principe est d’anticiper l’erreur en soulevant des exceptions( d’ailleurs j’ai entendu quelque part qu’avec PHP6 il sera possible d’attraper les fatal et les parse error… ça pourra être pas mal).

Pour éviter ça, il y a une méthode très simple : les try catch. Ils permettent “d’attraper” des exceptions et d’adapter le comportement d’une applications en fonction des erreurs que l’on peut rencontrer.

Par exemple, une class Exemple qui prend en premier paramètre un numeric qui ne doit pas être négatif :

class Exemple
{
  private var1;
  private var2;

  public function __construct($param1,$param2){
    if( !is_numeric($param1) || $param1 < 0 )
      throw new Exception('Erreur dans la class Exemple : le premier paramètre doit être numeric et supérieur à 0');
    $this->var1=param1;//on est maintenant certain de son type et de son signe
    $this->var2=param2;
  }
}

Ensuite, lorsque l’on va utiliser la classe Exemple on pourra faire :

try{
  $exmple = new Exemple( 3, 4);
  $exmple = new Exemple( -2, 10);
}catch(Exception $e){
  echo $e->getMessage();
}

Le premier “new Exemple” va bien se passer puisque le premier paramètre n’est pas inférieur à 0. Par contre lors du deuxième, une exception va être “catchée” et ce sont les instructions contenues dans le “catch” qui vont être exécutées.
Ici, $e->getMessage(); va retourner le message défini dans le constructeur de la class Exemple. De le même façon on aurait pu faire $e->getLine() pour récupérer la ligne de l’exception. Aussi, on aurait pu en plus utiliser la fonction error_log() pour s’envoyer une notification par mail contenant le message de l’exception, la date…

En fait on ne fait qu’utiliser les méthodes de classe Exception de PHP, qui peut-être étendue pour personnaliser la gestion des exceptions et par exemple l’affichage des messages. Si mon mini tuto-exemple ne vous suffit pas ou si vous avez rien compris vous pouvez aller voir par ici

Benchmark PHP5… quelques idées pour optimiser

Samedi 19 avril 2008

Comment grappiller quelques microsecondes par ci ou par là quand on développe en PHP ? Je viens de découvrir un document très instructif à ce sujet (ici) et je voulais citer quelques pistes pour y parvenir.

  1. Les simples quotes VS les doubles… ça ne fait plus vraiment débat et ça commence à être su, il faut dans tout les cas utiliser les simples…
  2. Ne pas utiliser la fonction is_null(), préférer la vérification $var===NULL qui est 2 fois plus rapide ! Entre nous, pensez aussi à isset() et empty()…
  3. Quelle structure de contrôle choisir ? Cela dépend du nombre d’alternative que vous avez. Pour moins de 3 ou 4, il est plus rapide d’utiliser le bon vieux if/elseif mais il se trouve qu’au delà de 5 environ le switch/case est plus véloce. Par contre, l’opérateur ternaire ( $var = ($var==1) ? ‘un’ : ‘pas un’; ) est dans tous les cas plus lent ( et moins lisible… mais je l’aime bien quand même dans certain cas :p).
  4. Les boucles : for / while ou foreach ? J’avoue, j’ai été assez surpris des réponses que j’ai trouvé et je crois que ma façon de coder va un peu changer… En fait, il se trouve que le foreach() est hyper lent ! Oui oui, la boucle que j’utilise 9 fois sur 10… bouh et personne ne me l’avais dit !! Donc utilisez while( list($key,$val)=each($array) ) à la place d’un foreach($array as $key=>$val). C’est surprenant non ! Bon bah moi ça m’a surpris… EDIT : continuez à utiliser des foreach, c’est bien plus rapide en fait… FOREACH FOREVER (voir ce sujet pour comprendre)
  5. Pour finir, préférer la méthode fopen/fread/fclose plutôt que le file_get_contents() et fopen/fwrite/fclose plutôt que le file_put_contents()…

Voilà, je vous invite aussi à faire un tour par là si le sujet vous intéresse…

Mieux sécuriser Wordpress avec PHPIDS et le plugin WP-IDS

Mercredi 26 mars 2008

J’ai découvert il y a peu un outils très intéressant pour lutter contre les failles de sécurité les plus répandues sur le Web (XSS, injections SQL…), son nom : PHPIDS (PHP-Intrusion Detection System). Cette application est développée en PHP et est placée sous licence LGPL.

Basée sur une collection d’expression rationnelles très bien testées, PHPIDS est capable de reconnaitre efficacement différents types d’attaques : XSS, injection SQL, lecture de dossiers, String.fromCharcode, encoding et injection distante” (extrait de cet article vu sur Nexen.net).

Convaincu par l’utilité de cette application, je poursuis mes recherche sur le sujet et je tombe sur cet article : PHPIDS pour Wordpress. Alors voici un mini tuto pour installer ce plugin génial :

1. Télécharger le plugin (en tar.gz ici ou en zip )
2. Placer le répertoire extrait de l’archive dans le /wp-content/plugins via FTP
3. Depuis l’interface d’administration de votre Wordpress, il ne reste plus qu’à activer le plugin et à le configurer

Voilà ! Bon pour la configuration c’est en anglais mais le plugin est bien réglé par défaut. En fait ça vous permet de définir le comportement à avoir en fonction du niveau d’alerte (ne rien faire, être notifié par mail, bloquer la requête…).

Votre Wordpress est maintenant plus sécurisé et vous, probablement plus serein… N’oubliez pas de vérifier les mises à jour des filtres sur php-ids.org de temps en temps.