Page 1 sur 1

Gestion d'un fichier txt

Posté : 05 févr. 2015, 11:02
par Xahos
Bonjour, pour mon stage on m'a demander de corriger un script php. J'ai travailler pas mal de temps sur l'erreur. Après utilisation de différente technique j'ai découvert le soucis mais je n'arrive pas à le corriger. Le problème est le suivant :
Je lis tout le fichier text de mail et tout les mails sont placer dans un array, puis je dois supprimer les doublons et ensuite suivant les adresses mail entrer par l'utilisateur le script dois supprimer l'adresse mail désirer. Le soucis c'est que passer une certaine quantité de mail, il ne supprime plus rien ...
		$Data = file_get_contents('./documents/mail.txt'); 
		$MailArea = $_POST['delink'];
		$Data_array = explode("\r\n", $Data);
		$TabFicUnique = array_values(array_unique($Data_array));
		$TabArea = explode("\r\n", $MailArea);
		$LengthFic = count($TabFicUnique);
		$LengthArea = count($TabArea);
		$MailTraite = '';
		$TabTemp = $TabFicUnique;
		for($i = 0; $i < $LengthFic; ++$i)
		{
			for($j = 0; $j < $LengthArea; ++$j)
			{
				if ($TabFicUnique[$i] == $TabArea[$j]) unset($TabTemp[$i]);
				
			}
		}
		$TabTemp = array_values($TabTemp);
		$LengthTemp = count($TabTemp);
		for($j = 0; $j < $LengthTemp; $j++) $MailTraite .= $TabTemp[$j] . "\r\n";
		
		$NomFich = "./documents/mail-maj.txt";
		if (!$fp = fopen($NomFich,"w+")) 
		{
			echo 'Erreur dans la création du document texte !';
			exit;
		}
		else echo 'Documents texte mail-maj.txt à été crée correctement <br />';
		
		fwrite($fp, $MailTraite);
		fclose ($fp);
SI on sait m'aider svp, ca serais bien sympas :) .

Re: Gestion d'un fichier txt

Posté : 06 févr. 2015, 11:37
par Aureusms
Un problème de mémoire ? Combien as-tu de courriels à traiter ?

Re: Gestion d'un fichier txt

Posté : 06 févr. 2015, 12:04
par Xahos01
Beaucoup, fichier volumineux de 35mo

Re: Gestion d'un fichier txt

Posté : 06 févr. 2015, 14:01
par xTG
Tu peux essayer de libérer de la mémoire, tu as le contenu du fichier que tu n'utilises plus dans $Data.
unset($Data);
Mais sinon 35mo c'est petit, je pense donc que la mémoire attribué à PHP est vraiment très basse...
Tu peux t'orienter vers la modification de la mémoire attribuée aux scripts PHP dans le php.ini si cette solution est acceptable.