The Caribbean Weblog

"This blog is continuing @ http://christophemaximin.com "

Aller au contenu | Aller au menu | Aller à la recherche

lundi 31 juillet 2006

Bookmark : Utiliser MySQL avec Ruby

=> http://www.kitebird.com/articles/ruby-mysql.html

jeudi 20 juillet 2006

Vim7, c'est bien.

< christophe971> my god
< christophe971> vim7 + ^N rox
< kik> tavu
< christophe971> clair
< kik> et :tabf un_fichier, sarox aussi
< kik> ca + :split et vsplit, ca fais un vrai environnement de dév
< christophe971> je vais blogguer ça

mardi 4 juillet 2006

PHP: Afterbuff, encore mieux que l'aftershave

Après ce jeu de mot pourri que vous me pardonnerez, je vais vous présenter la classe qui a un ratio utilité/taille le plus grand que j'ai jamais réalisé.

Mon problème de départ était simple : "comment remplacer une partie du <title> de la page alors que l'on est déjà au beau milieu de cette page ?", et comme tout est évidemment bufferisé, ça s'est transformé en "comment modifier le buffer après coup depuis n'importe quel endroit ?"

<?php
 
class Afterbuff {
	// encore mieux que l'aftershave
	function __construct(){
		$this->todo = '';
	}
	
	function add($string){
		$this->todo .= " \n".$string; // pour qu'il soit presentable lors d'un hypothetique affichage
	}
 
	function exec(){ global $buffer; // devinez ce que contient cette variable ?
		$retour = eval($this->todo);
		if($retour != false)
			$this->todo = '';
		
		return $retour;
	}
}
 
?>

Oui, ça n'a rien de révolutionnaire, c'est même stupide en fait, mais c'est rudement utile. Exemple d'utilisation :

<?php
// ... dans vos headers, apres le debut de la bufferisation
$AFTERBUFF = new Afterbuff;
// ici on ecrit dans le buffer le <title>
echo '<title>Blabla ProutProut</title>';
// .... n'importe ou sur le site, avec $blah = 'Vlan';
$AFTERBUFF->add('$buffer = str_replace("ProutProut","PouetPouet '.$blah.'",$buffer);');
// .... dans le footer php
$buffer = ob_get_contents();
ob_end_clean(); 
$AFTERBUFF->exec();
echo $buffer;
?>

Voili voilà.

Pages: