Voici un petit bout de code php5 qui permet de créer simplement des fichiers à partir d'un modèle. Comme mon explication est loin d'être évidente
voici un exemple avec un fichier de zone DNS. Ici, tout ce qui est mis entre accolade doit être remplacé par sa valeur.
$TTL 3600
{domain}. IN SOA {ns1}. {contactzone}. (
{timestamp}
10800
3600
604800
3600 )
{domain}. IN NS {ns1}.
{domain}. IN NS {ns2}.
; Enregistrements Spf
{domain}. IN TXT "v=spf1 a mx ~all"
mail.{domain}. IN TXT "v=spf1 a -all"
www.{domain}. IN A {ipl}
{domain}. IN A {ipl}
ftp.{domain}. IN A {ipl}
mail.{domain}. IN A {ipl}
{domain}. IN MX 10 mail.{domain}.
{domain}. IN MX 20 mx-backup.sivit.fr.
smtp.{domain}. IN CNAME mail.{domain}.
pop.{domain}. IN CNAME mail.{domain}.
Voici donc la méthode en question qui s'intégrera parfaitement dans votre classe :
<?php
/** Création de fichier de configuration
*
* Mini système de template pour créer des fichiers de configuration à partir d'un squelette
* en remplaçant {pattern} par la valeur
*
* @access public
* @return bool
* @param string $orig Fichier "template"
* @param string $dest Fichier de destination
* @param array $keywords Mots à rechercher dans le template
* @param array $values Valeur de remplacement
*/
public function setConfigFile($orig,$dest,$keywords,$values)
{
// contenu du fichier dans un variable
$content = file_get_contents($orig);
// ajout pattern
foreach($keywords as $key=>$value) {
$patterns[] = "/{".$value."}/imSU";
}
// remplacement
$output_content = preg_replace($patterns, $values, $content);
// variable dans un fichier ou exception
if(!file_put_contents($dest,$output_content)) {
throw new Exception('Erreur dans la creation du fichier');
}
return true;
}
// }}}
?>
Pour notre exemple, je passe sur l'instanciation de la classe, On utiliserais la méthode de la façon suivante :
<?php
// on a un objet obj
// à remplacer...
$keywords = array('domain','ns1','ns2','timestamp','contactzone');
// par :
$values = array('toto.com','ns1.toto.com','ns2.toto.com',date('Ymdi'),'technique.toto.com');
// go !
$obj->setConfigFile('zonedns.tpl','/var/cache/bind/toto.com.hosts', $keywords, $values);
?>
Ce script n'a rien de révolutionnaire mais je trouve ça pratique. Ca ressemble de très loin à un système de template minimaliste 
PS : pour les allergiques à l'orienté objet, vous pouvez bien entendu l'utiliser comme une simple fonction
Laissez tomber les Wifi-Radar et autres wpa_gui. Ne lisez plus non plus mes "howto" expliquant le 
Pour le
J'ai recu la nouvelle Freebox HD hier. Hormis le fait que j'ai eu du mal à trouver le relais Kiala où elle était en dépot, l'installation s'est déroulé parfaitement et, satisfaction, je n'ai pas eu à contacter le support pour l'enregistrement de l'adresse MAC de cette dernière comme s'était souvent la cas avant !
Spamplemousse ne suffisait plus. J'ai installé Captcha (accesible d'Olivier Meunier) et Spamtimeout. Je pensais dire adieu au spam sur les 
La nouveauté web 15.0 du jour : le système d'exploitation en Ajax. Si si ! Je vous jure ! Ca s'appelle