Fgetcsv, temps exécution

Salut,

Dans une de mes classes php j’utilise la fonction fgetcsv pour lire des fichiers csv.


$data_ref = array();
$handle = fopen($this->file_ref, "r");
$id_na_min = $this->get_id_field($this->file_ref, $this->na_min) - 1;
while ( ($row = fgetcsv($handle, 600, $this->delimiter)) !== false ) {
	$data_ref[$row[$id_na_min]] = $row;
}
fclose($handle);

Mon problème est qu’il met énormement de temps quand je plusieurs fois l’appel de ce script pendant un même traitement.
1iere fois avec un fichier de 5700 lignes ~ 0.27 secondes
2ieme fois avec un fichier de 4300 lignes ~ 60 secondes
3ieme fois avec un fichier de 4500 lignes ~ 128 secondes

A partir de la deuxième fois, l’appel de la fonction ne se fait pas au même endroit que le premier. Mais je ne pense pas que cela vienne delà

Est-ce que vous auriez une idée d’où ca peut venir ?

Je suis sous PHP 5

merci
Edité le 15/11/2007 à 17:44

Et si tu le bouchonne? (mise en cache, etc)

Je ne comprends pas ce que tu veux dire par là?

Au lieu de lire des données CSV via un fichier, lis les via une fonction qui crée un tableau de données aléatoires, mais suffisante.