YOURLS: Résoudre le problème d’affichage des caractères spéciaux

YOURLS: résoudre les problèmes d'affichage des caractères spéciaux

YOURLS est un ensemble de scripts PHP permettant de créer son raccourcisseur d’URL sur un nom de domaine que l’on possède. Ce type de services est bien pratique notamment pour twitter puisque n’autorisant qu’un nombre limité de caractères dans un message. Par exemple à chaque fois que je publie un article sur mon blog, un tweet est automatiquement envoyé contenant l’url raccourcie de l’article en question du style u.yann.me/9oWJD.

J’ai donc installé YOURLS sur mon hébergement et je l’utilise depuis maintenant presque 3 mois en utilisant une base de données MySQL. Par habitude j’avais configuré cette BDD en UTF-8 (utf8_general_ci) puisque cet encodage permet de représenter l’ensemble des caractères Unicode, c’est-à-dire la majorité des alphabets du monde entier (voir la liste).

Du coup je sais pas si ça vient de là mais ça fait trois mois que j’utilise un pannel admin de YOURLS qui ressemble à ça:

YOURLS: le pannel admin avec problèmes d'affichage des caractères

Tout ces petits accents qui se transforment en losanges contenant un point d’interrogation c’est pas super sympa à utiliser donc j’ai cherché une solution et elle est toute bête: il faut définir l’encodage à utiliser lors de la connexion à la BDD.

C’est simple mais faut mettre les mains dans le camboui alors je vais vous expliquer. Tout d’abord rendez-vous dans votre dossier qui contient YOURLS et cherchez pour le fichier «class-mysql.php» contenu dans le dossier «includes». À l’intérieur de se fichier vous devriez trouver le code suivant autour de la ligne 270:

### ezSQL MYSQL Class
class ezSQL_mysql extends ezSQLcore {

	## Constructor - allow the user to perform a qucik connect at the same time as initialising the ezSQL_mysql class
	function ezSQL_mysql($dbuser='', $dbpassword='', $dbname='', $dbhost='localhost') {
		if ($dbuser && $dbname) {
			$this->quick_connect($dbuser, $dbpassword, $dbname, $dbhost);
		}
	}

Il vous suffit de rajouter «$this->query( » SET CHARACTER SET utf8 « );» juste après l’appel de la fonction «quick_connect» pour obtenir quelque chose comme ça:

### ezSQL MYSQL Class
class ezSQL_mysql extends ezSQLcore {

	## Constructor - allow the user to perform a qucik connect at the same time as initialising the ezSQL_mysql class
	function ezSQL_mysql($dbuser='', $dbpassword='', $dbname='', $dbhost='localhost') {
		if ($dbuser && $dbname) {
			$this->quick_connect($dbuser, $dbpassword, $dbname, $dbhost);
			$this->query(" SET CHARACTER SET utf8 ");
		}
	}

Une fois ce fichier modifié vous ne devriez plus avoir de problèmes d’affichage. Chez moi ça fait deux semaines que j’ai mis en place ce morceau de code et tout semble tourner parfaitement bien comme vous pouvez le voir sur le screenshot ci-dessous:

YOURLS après la résolution du problème d'affichage des caractères

Source

Créer une web application type raccourci pour Google Chrome

Créer une application simple pour Google Chrome

Sous Google Chrome j’aime bien avoir des raccourcis vers certains sites quand j’ouvre un nouvel onglet. Pour faciliter ma navigation j’installe donc des applications du genre raccourci vers Twitter ou raccourci vers Pocket.

Sauf qu’il y a quelques temps je souhaitais ce type d’appli pour Google Plus et pas moyen d’en trouver une! Vu la facilité de création de ces machins, je vais vous expliquer comment créer une application simple pour Google Chrome.

Lire l’article