Bonjour à tous,

Je rencontre actuellement un souci suite à l'apparition de la fameuse erreur

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 1536 bytes)
J'essaye de comprendre à quel endroit je dépasse la mémoire mais, pour moi, je ne la dépasse pas.

Voici l'extrait de code où l'erreur apparaît:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
echo 'Memory in use: ' . memory_get_usage() . ' ('. memory_get_usage()/1024/1024 .'M) <br>';
echo 'Memory limit: ' . ini_get('memory_limit') . '<br>';
$valeur_id_group = '';
$i_cpt=0;
while ($i_cpt<count($tab_grp)) // $max est un tableau
{
	$id_groupe = $tab_grp[$i_cpt];				
	$login_gest_groupe = get_login_gest_group($id_groupe);
	if (ereg($login_gest,$login_gest_groupe))
	{
		if ($valeur_id_group == '') $valeur_id_group = "'".$id_groupe."'";
		else $valeur_id_group .= ",'".$id_groupe."'";
	}
	echo 'Memory in use: ' . memory_get_usage() . ' ('. memory_get_usage()/1024/1024 .'M) <br>';
	$i_cpt++;
}
Et voici le résultat:
Memory in use: 1832616 (1.7477188110352M)
Memory limit: 16M

.
.
.
.
Memory in use: 1864816 (1.7784271240234M) 

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate 1536 bytes) in /....
Mes calculs sont-ils faux ? Si ce n'est pas le cas, je ne vois pas comment je peux dépasser les 16M vue le résultat du memory_get_usage()

Peut-être que php n'attribue pas les 16M à mon script, comment puis-je le vérifier ? (sans garbage collector ni memory_get_peak_usage() non disponible en php 5.1 )

Merci d'avance pour votre aide