Bonjour,

je cherche à scanner les caractères contenu dans l'objet d'un mail ainsi que dans le corps et le comparé avec des mot clé contenu dans une base de données.

le problème est que la comparaison est beaucoup trop lente

première tentative avec mb_eregi => timme limit exceeded même avec 200 secondes
preg_match => même combat


après quelque recherche j'ai finalement trouver que mb_eregi est désormais obsolète, ce qui peut expliquer un peu la chose.

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
17
function Scan_mail($client,$inbox){ 
 
 
$nMessages = imap_num_msg($inbox); 
 
for($index=1; $index <= $nMessages; $index++){ 
$header = imap_header($inbox, $index); 
$corps= imap_body($inbox,$index); 
 
 
 
if (preg_match('#'.$client.'#',"value=".$header->subject)|| 
preg_match('#'.$client.'#',"value=".$corps)) { 
echo 'reussi pour ' . $client. '<BR/>'; 
} 
} 
}
avec l'utilisation de strpbrk() il me détecte plusieurs fois le même mot dans un seul mail alors que celui ci n'y est qu'une fois

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
function Scan_mail($client,$inbox){
 
 
$nMessages = imap_num_msg($inbox);
 
for($index=1; $index <= $nMessages; $index++){
	$header = imap_header($inbox, $index);
	$corps= imap_body($inbox,$index);
 
	if  (strpbrk($client,$header->subject)||
	strpbrk($client.$corps)) {	
            echo 'reussi pour ' . $client. '<BR/>';
	}
 
}}

un petit coup de main pour un pauvre stagiaire en perdition ?