Archive(s) pour la catégorie ‘PHP’

Retirer les caractères non imprimables d’une chaîne

jeudi 25 juillet 2013

Une chaine de caractères affichée n’est pas forcément identique à une autre pourtant affichée de la même manière.

En effet, à l’instar des espaces qui en HTML ne s’additionnent pas normalement (sans l’utilisation d’espaces insécables donc), certains caractères d’une chaine peuvent simplement passer inaperçus.

Ce n’est pas spécifiquement gênant dans la majorité des cas mais cela peut le devenir si certains de ces caractères sont indésirables dans certains circonstances, par exemple dans un fichier XML.

Une solution simple réside à remplacer tous ces caractères non afficheables par… du vide!

  1. span class= »st0″>’/[\x00-\x1F\x80-\xFF]/’,  », $string);

Traiter des données accentuées sauvées en HTML dans MySQL

lundi 8 avril 2013

Sauver ses données en HTML peut s’avérer très intéressant sous divers aspects (que je vous laisserai le soin de juger) mais cela pour nous rendre la vie dure.
Par exemple lorsque l’on souhaite s’appuyer sur MySQL pour faire des recherches de correspondances de textes accentués.

En effet, alors que la clause

  1. span class= »st0″>’%ecole%’

fonctionnera pour la valeur « école« , il n’en sera rien pour la valeur « école« .

La solution trouvée sur les forums de MySQL consiste à créer une fonction MySQL personnalisée en ajoutant « une procédure stockée » à votre base de données.

Une fois le code copié/collé (et adapté à votre configuration) dans votre base, vous n’aurez plus qu’à modifier votre clause en

  1. span class= »st0″>’%ecole%’

pour pouvoir sélectionner les entrées ayant un champ `data contenant le mot « école », « école », « ecole », « écòle », …

Trier un tableau avec du contenu accentué

lundi 8 avril 2013

Trier un tableau en PHP se fait de manière aisée avec la fonction sort() et ses fonctions homologues asort(), usort(), etc…

Cependant, ce tri ne s’effectue pas de manière naturelle pour nous les francophones puisque les lettres accentuées sont traitées APRÈS toutes les lettres non accentuées.
Ainsi, le tableau array('école', 'apprendre', 'jouer') trié avec sort() donnera array('apprendre', 'jouer', 'école')

Pour pallier cela, il suffira d’indiquer à PHP que l’ordre de tri doit se fait selon l’alphabet en UTF-8 francophone.

  1. span class= »st0″>’fr_FR.utf8′

Bon tri à vous!