PHP : fputcsv, une alternative
la fonction fputcsv est dispo que pour PHP 5 >= 5.1.0.
Elle permet tout simplement de rajouter des lignes dans un fichier ouvert en écriture au format .csv, pour plus de détail voir la doc php.
Comme le dit la doc les param de cette fonction sont :
fputcsv ( resource handle [, array fields [, string delimiter [, string enclosure]]] )
Vous-vous demandez pourquoi je vous ennui avec cette fonction toute bête de php5 ? Et bien tout simplement parceque hier je dévéloppais gaiement sur mon server de dev un script utilisant cette fonction. Et bien sure quand j’ai mit en ligne sur le serveur de prod, je me suis retrouvé avec un beau : ‘undefined fonction’.
Putain d’hébergeur qui à osé mettre php 5.0 !
Bon vous devinez la suite, voici le code de l’alternative non native :
if (!function_exists('fputcsv')){
function fputcsv($objFile,$arrData,$strDelimiter=',',$strEnclose='"') {
$strNewLine="\n";
$strToWrite = '';
foreach ($arrData as $strCell){
//Test if numeric
if (!is_numeric($strCell)){
//Escape the enclose
$strCell = str_replace($strEnclose,$strEnclose.$strEnclose,$strCell);
//Not numeric enclose
$strCell = $strEnclose . $strCell . $strEnclose;
}
if ($strToWrite==''){
$strToWrite = $strCell;
} else {
$strToWrite.= $strDelimiter . $strCell;
}
}
$strToWrite.=$strNewLine;
fwrite($objFile,$strToWrite);
}
}
?>
P.S. : pour faire un csv au format excel francais il vous faudra ceci : fputcsv($objFile,$arrData,’;') , c’est à dire séparateur ; et non , comme le voudrait la normal






Gilles nous dit :
Le 11 mai 2007 @ 11:04
Merci de l’info et du script. Je n’ai encore jamais bossé avec du CSV.
La mise en prod, c’est toujours flippant. Il y a toujours des coquilles imprévues.
Rahlala l’hébergement, c’est toujours une prise de tête
IndicaDesBois nous dit :
Le 11 mai 2007 @ 11:21
@Gilles : c’est clair si ont pouvez toujours avoir la main sur le serveur de Prod ça serait le réve. Mais c’est un des objectifs du WEB 3.0 si j’ai bien compris et que je vulgarise.