Archive pour 2004

Optimisation PHP le retour : strtr vs str_replace

lundi 1 novembre 2004 | Webdesign

PHP

Pour remplacer des mots précis dans une chaîne de texte il existe plusieurs méthodes. Les plus évidentes sont :

  • La fonction strtr associée à un tableau contenant les chaînes à traduire.
  • Une simple série de str_replace.

Exemple pratique avec des BBtags :

Le tableau d'éléments à remplacer pour strtr :

$arr=array('[/#]'=>'</span>', '[b]'=>'<b>', '[/b]'=>'</b>', '[i]'=>'<i>', '[/i]'=>'</i>', '[quote]'=>'<blockquote>', '[/quote]'=>'</blockquote>');

Le texte de test bidon :

$texte='In a [b]recent article[/b], former TRG CEO Jeff V. Merkey had offered to pay [i]50K USD for a BSD-licensed[/i] Linux. [quote]Groklaw did a followup on his offer[/quote], to which [#red]Jeff responded by notifying the FBI of Groklaws hate crimes violation[/#]. Merkey doesnt exactly have a great record, either, which is made even more apparent by his recent threats to file suit against Merkey.net for slander and [i]trademark infringement[/i], amongst others. In addition, he has also reported [b]Merkey.net[/b] to the FBIs hate crime department. What could Merkey.net do to get Jeff V. Merkey off their backs ?';

Avec str_replace :

$texte=str_replace('[/#]','</span>',$texte);
$texte=str_replace('[b]','<b>',$texte);
$texte=str_replace('[/b]','</b>',$texte);
$texte=str_replace('[i]','<i>',$texte);
$texte=str_replace('[/i]','</i>',$texte);
$texte=str_replace('[quote]','<blockquote>',$texte);
$texte=str_replace('[/quote]','</blockquote>',$texte);

Avec strtr :

$texte=strtr($texte,$arr);

Résultat sur 10000 itérations (temps en millisecondes) :

str_replace vs strtr

Conclusion : str_replace reste la solution la plus performante même si l'écriture est plus longue et moins souple.

Mise à jour : Sur la suggestion de Romain, la solution exploitant des tableaux avec str_replace mérite encore plus d'attention.

str_replace avec tableau :

$pattern = array('[b]', '[/b]', '[i]', '[/i]');
$repl = array('<b>', '</b>', '<i>', '</i>');
$texte = str_replace( $pattern, $repl, $texte);

str_replace vs str_replace

Arrêter de fumer

dimanche 31 octobre 2004 | Autour du monde

Vous hésitez encore ? Un petit coup d'oeil sur ces images choc... Limite gore mais il faut ce qu'il faut. Même chose au Canada. Prochaine mesure : coller des morceaux de verre pillé sur les paquets et déclencher la diffusion de la dernière chanson de Céline Dion à l'ouverture.

Fumer tue

L'Union européenne intensifie sa lutte contre le tabagisme. Au cours d'une conférence de presse qui s'est tenue ce 22 octobre à Bruxelles, David Byrne, le commissaire européen en charge de la santé et de la protection des consommateurs, a dévoilé les nouveaux avertissements sous forme d'illustrations percutantes, destinés à figurer sur les paquets de cigarettes. Ces illustrations font partie d'une base de données de 42 images destinées à être utilisées en combinaison avec les avertissements percutants introduits à l'échelon communautaire en 2003. Les États membres qui le souhaitent pourront y recourir pour intensifier l'impact de leurs avertissements sanitaires.

Que serait un blog sans un petit discours moralisateur de temps en temps ? Allez un petit sondage :

Quelle sera votre attitude face à cette campagne ?

View Results

Chargement ... Chargement ...

Annonces d'intérêt public

samedi 30 octobre 2004 | Autour du monde

Parrainage

Inspiration de Google© Adsense©.

Internet, un jeune déjà vieux

samedi 30 octobre 2004 | Autour du monde

Hier Internet célébrait ses 35 ans. Un événement mineur pour ce chaos de spaghettis mondial dans la force de l'âge, dont on oublie trop souvent l'accouchement difficile.

Pionnières en action

Le 29 octobre 1969, après avoir mis en place un réseau qui s'apparenterait aujourd'hui à 2 pots de yaourt et une ficelle, les chercheurs de l'Université de Californie tentaient de se connecter à une antiquité de l'Institut de Recherche de Stanford. Ces pionniers n'étaient pas préparés et aucune phrase symbolique n'a été choisie pour l'occasion comme aux premiers moments du télégraphe ou du téléphone.

Pour se logger dans ce réseau déjà vaste de 2 (!) ordinateurs, appelé ARPANET, les programmeurs étaient sensés taper l'instruction "log" et Stanford devait amoureusement répondre "in". Les californiens ont juste eu le temps de taper "lo" avant que la machine de Stanford ne se vautre. Comme on peut s'en douter, ça n'augurait que du bon pour la suite.

Le premier message transmis sur Internet était donc "Lo!". Par une chance extraordinaire, pas de faute de frappe. Imaginez "LoL" ou "Kikoo". Par chance le smiley n'a vu le jour que bien des années plus tard (le 19 septembre 1982 à 11h44 par le très sérieux Scott Fahlman pour être précis).

Message prophétique donc, puisque le tout a fini par fonctionner le 21 novembre 1969, et que les chercheurs ont pu s'adonner aux joies de l'ASCII Art et participer aux prémices de ce qui allait donner naissance plus tard aux fondements essentiels du réseau des réseaux: Caramail, les Skyblogs et le pr0n.

Source : CBC News : 'Lo' and behold! The internet turns 35.

Le mot le plus long

vendredi 29 octobre 2004 | Autour du monde

... en anglais :

Methionylglutaminylarginyltyrosylglutamylserylleucylphenyl-
alanylalanylglutaminylleucyllysylglutamylarginyllysyglutamyl-
gycylalanylphenylalanylvalylprolylphenylalanylvalylthreonyl-
leucylglycylaspartylprolylglycyllisoleucylglutamylglutaminyl-
serylleucyllysylisoleucylaspartylthreonylleucylisoleucyl-
glutamylalanylglycylalanylaspartylalanylleucylglutamylleucyl-
glycylisoleucylprolylphenylalanylserylaspartylprolylleucyl-
alanylaspartylglycylprolylthreonylisoleucylglutaminylasparaginyl-
alanylthreonylleucylarginylalanylphenylalanylalanylalanyl-
glycylvalylthreonylprolylalanylglutaminylcysteinylphenylalanyl-
glutamylmethionylleucylalanylleucylisoleucylarginylglutaminyl-
lysylhistidylprolylthreonylisoleucylprolylisoleucylglycylleucyl-
leucylmethionyltyrosylalanylasparaginylleucylvalylphenylalanyl-
asparaginyllysylglycylisoleucylaspartylglutamylphenylalanyl-
tyrosylalanylglutaminylcysteinylglutamyllysylvalylglycylvalyl-
aspartylsrylvalylleucylvalylalanylaspartylvalylprolylvalyl-
glutaminylglutamylserylalanylprolylphenylalanylarginylglutaminyl-
alanylalanylleucylarginylhistidylasparaginylvalylalanyl-
prolylisoleucylphenylalanylisoleucylcysteinylprolylprolylaspartyl-
alanylaspartylaspartylaspartylleucylleucylarginylglutaminyl-
isoleucylalanylseryltyrosylglycylarginylglycyltyrosylthreonyl-
tyrosylleucylleucylserylarginylalanylglycylvalylthreonylglycyl-
alanylglutamylasparaginylarginylalanylalanylleucylleucyllysyl-
glutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminyl-
glycylphenylalanylglysylisoleucylserylalanylprolylaspartylglutaminyl-
valyllysylalanylalanylisoleucylaspartylalanylglycylalanylalanyl-
glycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucyl-
isoleucylglutamylglutaminylhistidylasparaginylisoleucylglutamyl-
prolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenyl-
alanylvalylglutaminylprolylmethionyllysylalanylalanylthreonylarginy-
lserine.

Metre

1913 caractères représentant la formule chimique C1289H2051N343O375S8

Vu la nomenclature habituelle des composés chimiques je suis sûr qu'il y a moyen de faire mieux. Ce mot vient juste après supercalifragilisticexpialidocious (qui n'est pas dans le dictionnaire malgré ce qu'en dit la rumeur) mais honnêtement... qui l'a lu ou même dit jusqu'au bout ?

Dewmobile

jeudi 28 octobre 2004 | 3617 MyLife

Dew car

Oooh. (Oui totalement inutile : billet à valeur ajoutée nulle, mais il y a des jours où l'inspiration se fait rare. C'est comme un terrain en friche qui ne demande qu'à exprimer tout son potentiel quand le moment sera venu.)

Merci à contactfr pour la photo et pour sa vue aiguisée.

Bush serait un robot

mercredi 27 octobre 2004 | Autour du monde

WASHINGTON (AFP) - La bosse rectangulaire visible dans le dos du président lors du premier débat télévisé qui l'a opposé au candidat John Kerry et qui a suscité de nombreuses polémiques vient d'une "chemise mal taillée", a affirmé mardi le président George W. Bush sur ABC.

Une bosse dans la Bush

La polémique est donc toujours d'actualité. Récepteur radio pour dicter ses phrases au candidat ? Il pourrait avoir été aidé lors des débats télévisés par un discret procédé d'oreillette lui soufflant certaines réponses. L'explication semblait logique. Surtout quand on connaît le potentiel logorrhéique de la brique moyenne. Or la vérité est d'une très grande simplicité. Bush serait un robot. Un modèle de la série C-3PO pour être plus précis. Je n'ai pas réussi à me procurer de meilleure capture que celle-ci mais on voit nettement la bosse en question. Typique.

La bosse de C3PO

Des progrès ont été accomplis depuis pour obtenir un visage avec des tissus organiques. Mais ça ne fait plus de doute : Bush est un robot-pantin, droïd protocolaire, commandé à distance.

Un forum sur les Standards du web

mardi 26 octobre 2004 | Webdesign

J'ai le co-plaisir de vous inviter à venir participer à un forum centré autour des Standards du Web qui vient d'ouvrir en grandes pompes à l'adresse http://forum.alsacreations.com/, site dont Raphael Goetter est à l'origine. Déjà 140 inscrits et plein de sujets intéressants pour les geeks portant des t-shirts I love W3C ou CSS ruled my life.

Forum Alsacreations

Vous pouvez consulter l'annonce de lancement sur le blog agrume et le sujet d'inauguration.

Le script utilisé est maison, hand-coded by dew © (oui c'est de l'auto-promo, on ne se refait pas), et je pense que Raph est suicidaire d'avoir accepté de l'utiliser.

La priorité sera donnée aux styles CSS, aux langages HTML, XHTML, XML, JavaScript, ECMAScript, à l'Accessibilité aux handicaps, etc... mais aussi et surtout aux diverses ressources disponibles (sites conformes, autres forums, galeries de sites, sites de tutoriels, livres, etc.)

And remember... it's not a bug, it's a feature. Pensez à venir vous présenter vous aussi :

- Bonjour je m'appelle dew.
- [en choeur] Bonjour dew.
- Alors moi je suis sorti de la conception par tables il y a plus d'un an.
- Clap clap clap clap.
- J'ai fait quelques rechutes depuis...
- Booouh Boouuhh.
- ...mais je pense m'en être sorti définitivement.
- Aaaaaaaaaah.
- Je n'ai plus touché à une <table> et à du HTML4 depuis 3 mois. Merci de m'accueillir parmi vous. Ensemble nous vaincrons ! Le HTML c'est tabou ! On en viendra tous à bout.

Programmation système sous Linux

lundi 25 octobre 2004 | Autour du monde

A la recherche du Mutex perdu

J'ai mis en ligne un petit cours d'introduction (digeste?) sur la Programmation Système en C sous Linux pour les débutants.

Au sommaire :

En espérant que ça pourra servir... Vous pouvez l'imprimer, le distribuer, le manger, le copier librement.

Accros du roc

dimanche 24 octobre 2004 | Autour du monde

Accros du Roc

Suzanne est une jeune étudiante discrète. Si discrète qu'elle devient très souvent invisible. Ses origines familiales sont un peu floues d'ailleurs... Un beau jour, la Mort aux Rats vient la chercher en couinant, Suzanne ne comprend pas un mot mais elle sent que quelque chose de grave et d'important se prépare. Un magnifique cheval blanc l'emmène à travers les airs jusqu'à une immense demeure : ah oui, il s'agit de la maison de la Mort. Son grand-père. Il vient d'avoir une petite crise existentielle et a délaissé ses affaires courantes. Suzanne doit assurer l'intérim.

Pendant ce temps-là, à Ankh-Morpork, un jeune barde débarque en ville, accompagné de sa harpe et bien décidé à en jouer. En chemin vers la Guilde des Musiciens, il rencontre ses futurs acolytes, un troll et un nain, le premier tape sur des cailloux et le second s'essoufle dans un cor. Mais un accident est vite arrivé : le jeune barde perd son instrument et trouve à la place une guitare, animée semble-t-il d'une vie propre.

Le premier concert - illégal - est un feu d'artifice : le premier Groupe de rocs du Disque-Monde vient de se créer et fait un sacré remue-ménage à Ankh-Morpork ! Mais cette guitare met le barde en danger de mort, et Suzanne devra intervennir... Roc and troll, quand tu nous tiens!

Les Annales du Disque-Monde, Tome 16 (Terry Pratchett). Dernier sorti en french. On y perd un peu à la traduction roc/rock c'est dommage. Détente pour tous les âges.