By: Condutiarii
Date: 2004-11-30
Time: 21:17
|
CSV File (fr: fichier csv)
You can parse a csv file with custom data source / Vous pouvez traiter un fichier au format CSV avec une source de données personnalisée.
Beware ! The first line must be fields descriptor / Attention ! La première ligne doit énumérer le nom des champs.
test.csv :
player,mail,right,special,number
Condutiarii,condutiarii@game.fr,admin,,12
Renz,renz@game.fr,user,,6
Vorak,vorak@game.fr,user,inactive,45
|
You place your block following fields (first line) in csv file / Vous placez votre bloc selon les champs (décrits sur la première ligne) du fichier csv.
test.htm
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" />
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1250" />
<title>
CSV Source
</title>
<link rel="stylesheet" href="inc/style.css" type="text/css" />
</head>
<body>
<table>
<tr>
<td>
[result.player;block=tr]
</td>
<td>
[result.mail]
</td>
<td>
[result.right]
</td>
<td>
[result.special]
</td>
<td>
[result.number]
</td>
</tr>
</table>
</body>
</html>
|
With PHP 4
<?php
require_once('tbs_class.php');
function tbsdb_csv_open(&$Source, &$Query)
{
if ($handle = @fopen($Query, 'r'))
{
if (!defined('TBS_CSV_DELIMITER'))
define('TBS_CSV_DELIMITER', ',');
if (!defined('TBS_CSV_LENGTH'))
define('TBS_CSV_LENGTH', 1024);
$field = @fgetcsv($handle, TBS_CSV_LENGTH, TBS_CSV_DELIMITER);
return array
(
'handle' => $handle,
'name_field' => $field
);
}
else
return false;
}
function tbsdb_csv_fetch(&$Rs, $RecNum)
{
if ($data = @fgetcsv($Rs['handle'], TBS_CSV_LENGTH, TBS_CSV_DELIMITER))
{
foreach ($Rs['name_field'] as $key => $val)
{
$data[$val] = $data[$key];
unset($data[$key]);
}
return $data;
}
else
return false;
}
function tbsdb_csv_close(&$Rs)
{
@fclose($Rs);
}
$TBS = new clsTinyButStrong;
$TBS->LoadTemplate('test.htm');
$TBS->MergeBlock('result', 'csv', 'test.csv');
$TBS->Show();
?>
|
With PHP 5 :
<?php
require_once('../tbs2/tbs_class.php');
function tbsdb_csv_open(&$Source, &$Query)
{
if ($handle = @fopen($Query, 'r'))
{
if (!defined('TBS_CSV_DELIMITER'))
define('TBS_CSV_DELIMITER', ',');
if (!defined('TBS_CSV_LENGTH'))
define('TBS_CSV_LENGTH', 1024);
$field = @fgetcsv($handle, TBS_CSV_LENGTH, TBS_CSV_DELIMITER);
return array
(
'handle' => $handle,
'name_field' => $field
);
}
else
return false;
}
function tbsdb_csv_fetch(&$Rs, $RecNum)
{
if ($data = @fgetcsv($Rs['handle'], TBS_CSV_LENGTH, TBS_CSV_DELIMITER))
return array_combine($Rs['name_field'], $data) ;
else
return false;
}
function tbsdb_csv_close(&$Rs)
{
@fclose($Rs);
}
$TBS = new clsTinyButStrong;
$TBS->LoadTemplate('test.htm');
$TBS->MergeBlock('result', 'csv', 'test.csv');
$TBS->Show();
?>
|
You can specify the CSV delimitor and length with this constant to define before MergeBlock method with csv source / Vous pouvez spécifier le délimiteur et la longueur des lignes de votre fichier csv avec les constantes suivantes, à déclarer avant toutes utilisations de la méthode MergeBlock avec cette source de données.
TBS_CSV_DELIMITER
TBS_CSV_LENGTH
|