PHP : solution pour l'erreur "preg_match(): Compilation failed: invalid range in character class" photo

PHP : résoudre l’erreur “function eregi() is deprecated”

php logo

Il vous est peut-être déjà arrivé de tomber sur ce message d’avertissement :

Function eregi() is deprecated.

En fait, “deprecated” signifie que les versions récentes de PHP considèrent cette fonction comme obsolète, c’est un peu comme si la fonction ereg() n’existait plus.

Par conséquent, mieux vaut dorénavant utiliser la fonction preg_match qui a pris sa place.

La fonction ereg() ou eregi() est donc remplacée par la fonction preg_match() depuis PHP 5.3 :

$is_image = eregi( "jpg|gif",$file_type );Code language: PHP (php)

devient donc :

$is_image = preg_match( “~jpg|gif~i”,$file_type );Code language: PHP (php)

Voici la liste des fonctions devenues obsolètes sous PHP 5.3 :

call_user_method() (use call_user_func() instead)
call_user_method_array() (use call_user_func_array() instead)
define_syslog_variables()
dl()
ereg() (use preg_match() instead)
ereg_replace() (use preg_replace() instead)
eregi() (use preg_match() with the ‘i’ modifier instead)
eregi_replace() (use preg_replace() with the ‘i’ modifier instead)
set_magic_quotes_runtime() and its alias, magic_quotes_runtime()
session_register() (use the $_SESSION superglobal instead)
session_unregister() (use the $_SESSION superglobal instead)
session_is_registered() (use the $_SESSION superglobal instead)
set_socket_blocking() (use stream_set_blocking() instead)
split() (use preg_split() instead)
spliti() (use preg_split() with the ‘i’ modifier instead)
sql_regcase()
mysql_db_query() (use mysql_select_db() and mysql_query() instead)
mysql_escape_string() (use mysql_real_escape_string() instead)
Passing locale category names as strings is now deprecated. Use the LC_* family of constants instead.
The is_dst parameter to mktime(). Use the new timezone handling functions instead.Code language: JavaScript (javascript)
PHP: résoudre l'erreur "file_get_contents(): SSL operation failed with code 1" photo

PHP : les bons en-têtes pour permettre la mise en cache d’une page

Je me suis rendu compte qu’un des fichiers javascript d’un plugin WordPress est appelé sur chaque article du site et qu’il n’est pas mis en cache par défaut…

C’est très moyen au niveau optimisation étant donné que c’est typiquement le genre de fichier statique qui n’est pas prêt d’être modifié.

Voici donc les en-têtes (headers) qui vont nous permettre de mettre un fichier en cache en PHP :

<?php
/*
|--------------------------------------------------------------------------
| Enable Caching with PHP headers by Matt - www.skyminds.net
|--------------------------------------------------------------------------
|
| Let's set it to 90 days caching.
| seconds, minutes, hours, days 
|
*/
$expires = 60*60*24*90;

header('Pragma: public');
header('Cache-Control: maxage='.$expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time()+$expires) . ' GMT');Code language: HTML, XML (xml)

Et voilà, page mise en cache.

Cela fait moins de requêtes sur le serveur puisque le navigateur n’a pas besoin de redemander la page à chaque visite.

WordPress : récupérer la liste emails des membres et commentateurs photo

WordPress : afficher un shortcode dans un article, une page ou une template

wordpress_icon_blue

M’étant quelque peu arraché les cheveux pendant les vacances pour trouver comment afficher correctement un shortcode dans une template WordPress, voici comment afficher un shortcode dans un article, une page ou une modèle de page.

Cela me servira de référence ultérieure mais je suis certain que cela en aidera d’autres.

Créer un shortcode

Pour créer un shortcode, on crée une fonction puis le shortcode associé dans le fichier functions.php du thème WordPress :

/* Fonction */
function sky_hello_readers($content) {
return 'Hello readers !';
}

/* Création du shortcode avec add_shortcode() */
add_shortcode( 'hello', 'sky_hello_readers' );Code language: PHP (php)

Lire la suite

Webdesign : le site du collège Pablo Picasso photo

Webdesign : le site du collège Pablo Picasso

Il y a quelques mois, je vous avais dit que j’étais en charge du site du collège Pablo Picasso, où j’ai passé quelques années, mais je ne vous avais jamais dévoilé le design – le voici donc :

design college pablo picasso montfermeil

J’ai laissé la main à une collègue depuis que je suis parti – d’ailleurs on peut voir qu’il y a beaucoup moins d’images et de contenu depuis – mais je garde toujours un œil dessus. C’est dur de se détacher de ses créations!

Lire la suite

Dialogues ZEP : Doudou fait de l'infographie photo

Dialogues ZEP : Doudou fait de l’infographie

Voici le deuxième membre de l’équipe chargée du site web du collège, ma collègue Doudou :

zep doudou infographie

Je dois vous avouer que quand j’ai entendu qu’elle prenait des cours d’infographie, j’étais plein d’attentes : je voyais déjà un site aux lignes structurées avec un design unique, des logiciels professionnels… et là, paf! Le gif animé qui ruine toute cette vision d’avenir.

Lire la suite

Le site de l'Académie de Créteil n'accepte que deux navigateurs : Internet Explorer et Firefox photo 1

Le site de l’Académie de Créteil n’accepte que deux navigateurs : Internet Explorer et Firefox

academie creteil logo

Ces derniers temps, je travaille sur le site internet du collège. Du coup, j’ai moins de temps pour le mien tiens.

Bref, j’y travaille donc et je rajoute quelques petits liens utiles comme des liens vers l’Inspection Académique, le Bulletin Officiel, le site académique… que des sites qui ne sont visités que par les personnels de l’Éducation Nationale en somme.

Vu que je fais les liens, je jette un œil aux sites sus-cités. Et là, paf!, un message d’erreur que je ne peux m’empêcher de partager ici avec vous :

creteil navigateurs

Alors là, bien joué les gars ! C’est bien la peine d’avoir un site XHTML 1.0 valid (bel effort, soulignons-le) si c’est pour mettre à la porte tous les visiteurs qui possèdent un navigateur autre qu’Internet Explorer 8 ou Firefox 3.

Lire la suite

CSS : définir la taille d'un champ texte photo

CSS : afficher correctement une image en arrière-plan

Il m’est arrivé plusieurs fois de ne pas pouvoir afficher une image en arrière-plan (background image) en CSS et cela tout simplement parce que le code CSS doit être écrit dans un certain ordre, notamment lorsque l’on utilise la syntaxe courte.

Solution : du code CSS ordonné

Alors voilà : imaginons que nous voulons créer une DIV ayant pour identifiant “banner”. Nous voulons que cette DIV affiche l’image background.png.

Il faut commencer par mettre l’URL de l’image entre guillements puis la position horizontale, ensuite la position verticale et enfin la répétition de l’image ou non.

Exemple en utilisant la propriété background (short-hand syntax) :

#banner {
  background:url("background.png") center top no-repeat;
}
Code language: CSS (css)

Lire la suite

gimp-lamb-night

Ubuntu : installer la dernière version de GIMP

gimp lamb night Vous savez très certainement que GIMP, le célèbre éditeur graphique libre et alternative open-source à Photoshop, n’est plus installé par défaut sous Ubuntu depuis Lucid Lynx (v10.04).

Il reste dans les dépôts toutefois et si vous mettez à niveau votre installation Ubuntu, il reste installé bien entendu. Ubuntu pense que GIMP s’adresse plutôt à un public averti et qu’il n’est pas assez “grand public” pour être installé par défaut avec le système d’exploitation. Personnellement, je le trouve très bien et pourtant je ne suis pas graphiste (et je suis totalement perdu sous Photoshop !). F-Spot, beaucoup plus limité, devient l’éditeur d’images par défaut.

Voici comment installer la dernière version de GIMP en 3 lignes de commande, à partir de son SVN.

Lire la suite

CSS : définir la taille d'un champ texte photo

CSS : forcer le retour à la ligne du code pre en CSS3

Je me suis rendu compte en rédigeant mes articles sur l’installation du serveur dédié que le code bash, lorsqu’il était un peu long, n’allait pas à la ligne automatiquement.

Il était écrit d’une seule ligne dans son conteneur, forçant une barre de navigation horizontale bien disgracieuse… Heureusement, cela est maintenant une chose du passé.

Le code est affiché sur le site avec la balise pre, qui permet l’affichage d’un texte pré-formaté.

Or la particularité de cette balise est qu’elle désactive le retour à la ligne. Voici une astuce en CSS pour contre-carrer cet effet indésirable.

/* Forcer le retour à la ligne de la balise PRE - skyminds.net */		
pre {
   white-space: pre-wrap;             /* CSS3 */
}Code language: CSS (css)

Lire la suite

skyminds-palmtree

10ème anniversaire : nouveau thème Palm Tree

Il y a eu assez peu de changement dans le design de SkyMinds.net en 10 ans : je dirai qu’il y a eu 5 ou 6 versions “majeures” en tout. Vous aurez sûrement remarqué que je m’attache facilement à un design particulier (que je finis par hacker jusqu’à l’os !). Hé bien pour ce dixième anniversaire, je voulais quelque chose qui résume le site, qui colle un peu plus au nom de domaine et qui soit un peu plus identifiable.

skyminds-palmtree Je ne suis pas vraiment graphiste (mes élèves en témoignent chaque jour) et je n’ai jamais réussi à créer un logo potable. Et pourtant, j’ai essayé ! Finalement, j’ai opté pour une approche typographique, ayant remarqué que la plupart des grandes marques utilisent une police de caractères bien particulière. Et je suis assez satisfait du résultat ce coup-ci.

Lire la suite