Archives mensuelles : novembre 2007

Pensez à nous le 15 !

Le 15 Octobre, mon fils et moi même allons être opéré à l’hopital Edouard Herriot (Lyon).

Pour moi, hépactectomie partielle du foie et pour lui transplantation de l’organe (en clair, avec mes 15% de foie, il s’en fait un entier). Cette chirurgie étant le seule remède à sa pathologie.

En conséquence ce modeste blog ne sera pas mis à jour pendant un moment.

A très bientôt.

Publicités

Utilisation de eval() avec PHP5

La fonction eval() permet d’évaluer une chaine de caractère comme du code PHP. Elle peut être utile dans certains cas mais pose des problèmes :

  • le code est plus dur à maintenir et à déboguer,
  • l’execution de cette fonction ralenti votre script.

C’est particulièrement vrai pour les eval appelés dans une boucle ; c’est le temps de compilation que vous multipliez dans ce cas là. Si vous devez faire ça, il vaut mieux alors carrément inclure la boucle dans le code à évaluer.

Ce petit script le montre par l’exemple.

$nb_iteration = 400000;

$start_time = microtime(true);
// boucle de référence
for ($i=0; $i <= $nb_iteration; $i++)
{
	$r = $i;
}

$end_time = microtime(true);

echo 'time taken (no eval)        : '.($end_time-$start_time).' s'."n";

$start_time = microtime(true);
// éval a chaque itération
for ($i=0; $i <= $nb_iteration; $i++)
{
	eval('$r = $i;');
}

$end_time = microtime(true);

echo 'time taken (with eval)      : '.($end_time-$start_time).' s'."n";

$start_time = microtime(true);
// eval autour de la boucle
eval (
  'for ($i=0; $i <= $nb_iteration; $i++)
  {
    $r = $i;
  }');

$end_time = microtime(true);

echo 'time taken (with loop eval) : '.($end_time-$start_time).' s'."n";

Il donne les résultats suivants :

$ php eval_speed.php
time taken (no eval)        : 0.248116016388 s
time taken (with eval)      : 6.24511909485 s
time taken (with loop eval) : 0.314826011658 s

Parlant non ?

captcha war !

Une arme de plus a été trouvé par les spammeurs dans la guerre contre les formulaires !

Melissa la stripeuse rend les humains aussi dociles que des robots.

Vous croyez participer à un petit jeu sympathique mais, en fait, vous aider simplement un spammeur à ce créer une nouvelle adresse mail Yahoo! Mail. Impressionnant l’inventivité des ces gens là !

Programmer un démon en PHP

Un démon (ou daemon en anglais) est un programme fonctionnant en permanence en arrière plan et qui n’est pas contrôlé par l’utilisateur.

PHP étant un langage de script, on ne peut pas lancer des tâches de fond depuis les requêtes faites sur le serveur http. Quand un processus nécessite des traitements nombreux et n’a pas besoin, ou ne peux pas, être réalisé immédiatement, on peut facilement renseigner cette tâche dans une pile (dans une base de donnée ou un fichier) qu’un démon se chargera de réaliser.

Voyons comment réaliser ce démon.

Lire la suite