hello
tu dois mettre le contenu de $tplFile dans un fichier, (si le fichier n'existe pas, il sera créé (il faut tout lire)
<?php
$file = 'data.csv'; //chemin vers le fichier csv
$tpl = 'html.tpl'; //chemin vers le fichier template
$row = 1; //compteur de ligne
$tabData = array(); //tableau des données CSV
$tabTitle = array(); //titre les colonnes
$fileExt = '.html';
//ouvre le fichier
if (($handle = fopen($file, "r")) !== FALSE) {
// on parcours le fichier csv tant qu'il n'y a plus de ligne
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data); //nombre de champs sur une ligne
//récupère les champs sur une ligne
for ($c=0; $c < $num; $c++) {
if($row == 1){ // titre des colonnes csv
$tabData[trim($data[$c])] = array(); //on créer un tableau avec le titre de la colonne
$tabTitle[$c] = trim($data[$c]);
}
else{
$tabData[$tabTitle[$c]][] = trim($data[$c]); // on met les données dans le tableau
}
}
$row++; // on incrémente la ligne
}
//récupère le fichier template
$tplFile = file_get_contents($tpl);//récupère le fichier template
$row = $row-2; //décrémente de 2 ( titre + incrément de fin en trop)
//boucle sur le nombre de ligne == nombre de fichier à créer
for($i=1;$i<$row;$i++){
$tplFileTmp = $tplFile; // on associe un tpl clean
$datas = getLine($tabData,$i);//récupère les champs de la ligne $i (1 2 3 ...)
//boucle sur les champs pour remplacer dans le fichier tpl
foreach($datas as $title=>$value){
//remplace dans le tpl
$tplFileTmp = str_replace('{'.$title.'}',$value,$tplFileTmp);
}
// écrire le fichier
file_put_contents($datas['productname'].$fileExt,$tplFileTmp);
echo $datas['productname'].$fileExt." créer !<br />\n";
}
}
else{
die("no file to open");
}
//function sinon
function getLine($array,$num){
$ligne = $num-1;
$tmp = array(); //tableau
foreach($array as $title=>$tab){ //pour chaque titre=>valeur du tableau
$tmp[$title]=$tab[$ligne];
}
return $tmp;
}
?>