Associer un éditeur de texte dans Filezilla

Il arrive parfois qu’on a besoin d’éffectuer une petite modification sur un site web. A ce titre, Filezilla permet de lancer l’édition d’un fichier. Il n’est pas toujours évident de changer les options pour qu’il utilise l’éditeur par défaut et le plus simple est de changer les associations par type de fichier.

Lire la suite

Ne rien modifier en cas de DUPLICATE KEY

Dans certains cas de figure on peut souhaiter d’insérer un record et n’effectuer aucun changement si les informations sont déjà présentes.

Un exemple concret est l’entretien d’une table d’adresses email erronnées qui peut être utile lorsqu’un hébergeur a pour politique de bloquer les envois pour éviter le spam.

Lire la suite

Faire co-habiter jQuery et Mootools

Je me suis de nouveau ré-intéressé aux mécanismes qu’offre Ajax et cela m’a mené à tester quelques scripts utilisant des bibliothèques Javascript tel que jQuery et Mootools. Pour un projet j’ai récupéré deux scripts et c’est alors que je me suis rendu compte de la possibilité de conflit. On peut trouver quelques informations sur Google à ce propos.

Lire la suite

L’affichage en UTF8

Ceux qui ont été confrontés aux problèmes d’encodage de caractères peuvent confirmer que cela peut présenter un véritable casse-tête.

Ce fut le cas hier lorsque j’ai découvert qu’une nouvelle version d’un script imposait l’utilisation de l’utf8. Le résultat c’est que le symbole de l’euro s’affichait sous forme d’un diamant noir et les caractères accentués étaient également transposés sous forme d’autres caractères. Il fallait donc trouver une solution.

Lire la suite

Assainir une source HTML avec HTMLPurifier

Pour valider du texte riche (balises html) on m’a recommandé la bibliothèque HTMLPurifier. Première visite sur le site officiel et les promesses semblaient au rendez-vous. La nécessité d’avoir PHP5 n’était pas un souci car facilement changeable auprès de l’hébergeur via un .htaccess.

Ce fut alors que j’ai découvert qu’il y a très peu d’exemples pour s’inspirer et la documentation est assez lourde. J’ai donc passé une journée à essayer de comprendre comment cela fonctionnait avant d’aboutir au code suivant:

Lire la suite