IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Fatal error: Allowed memory size


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Par défaut Fatal error: Allowed memory size
    Bonjour, lorsque je lance mon script php, j'ai droit à cette erreur : Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 35 bytes)

    voici le code complet :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    <?php
    $fm = fopen("membres.txt" , "rb");
    $nbmembres = 1;
     
    while(!feof($fm)) {//récupérer les noms des membres et leur nombre ( variable $nommembre )
      $nommembre[$nbmembres] = fgets($fm);
      $nbmembres++;
    }
    fclose($fm);
    $nbmembres = $nbmembres - 1;
    $l=1;
    $m=1;
    for($id = 1 ; $id <= $nbmembres ; $id++ ){ //nettoyage de la variable $nommembre
    $nommembre[$id] = preg_replace('/\s/', '',$nommembre[$id]);
    }
    echo "<br />";
    for($id = 1 ; $id <= $nbmembres ; $id++ ) { //récupère les infos des membres ( variable $infos )
    	$nomfichiero=$nomfichier=$nommembre[$id];
    	$nomfichiero.="o.txt";
    	$nomfichier.=".txt";
     
    	$fm = fopen($nomfichier , "rb");
    	$fo = fopen($nomfichiero, "rb");
    	$d=$l;
    	$f=$l+2	;
    		for($l = $d ; $l <= $f ; $l++) { //on récupère les infos actuelles
    			$infos[$l] = fgets($fm);
    			}
    	$i=$m;
    	$e=$m+2	;
    		for($i = $m ; $i <= $e ; $m++) { //on récupère les anciennes infos
    			$infoso[$m] = fgets($fo);
    			}
    	fclose($fm);
    	fclose($fo);
    }
     
    for($id = 1 ; $id <= $f ; $id++ ){ //nettoyage de la variable $infos
    $infos[$id] = preg_replace('/\s/', '',$infos[$id]);
    }
    echo "<br />";
    for($ido = 1 ; $ido <= $e ; $ido++ ){ //nettoyage de la variable $infoso
    $infoso[$ido] = preg_replace('/\s/', '',$infoso[$ido]);
    }
    echo "<br />";
     
     
     
    foreach ($nommembre as $numLine => $text) {
      echo "Membre numéro " . $numLine . " : " . $text . "<br/>";
    }
    foreach ($infos as $numLine => $text) {
      echo "info numéro " . $numLine . " : " . $text . "<br/>";
    }
    ?>
    comment corriger ce problème ?

    note :
    Les fichiers que j'ouvre font tous moins de 1 Ko (le plus gros fait 16 octets)
    il y a en tout 5 fichiers pour un poids total de 73 octets
    le script fait 2565 octets

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    tu dois être en boucle infinis (y'a beaucoup de blabla dans ton code)

    montre tes fichiers de base et ce que tu voudrais avoir au final

  3. #3
    Membre expérimenté
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Par défaut
    fichiers de base ?
    c'est à dire ?

    Dans ce script, on ouvre un fichier avec une liste de membres. (un nom par ligne)
    on enregistre chaque nom dans une variable ($membres[×])
    sur le serveur, il y a deux fichiers par membre contenant chacun 3 lignes
    les fichiers ont pour nom : nomdumembre.txt et nomdumembre-o.txt
    je récupère les infos des fichiers et je les stocke dans deux variables ligne par ligne (infos[×] et infoso[×])

    j'affiche le tout

    l'erreur est apparue quand j'ai rajouté ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		for($i = $m ; $i <= $e ; $m++) { //on récupère les anciennes infos
    			$infoso[$m] = fgets($fo);
    			}

  4. #4
    Membre expérimenté
    Avatar de crozet.magenta
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2012
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 208
    Par défaut
    c'est bon, j'ai trouvé, c'est effectivement une boucle infinie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		for($i = $m ; $i <= $e ; $m++) { //on récupère les anciennes infos
    			$infoso[$m] = fgets($fo);
    			}
    j'incrémente $m au lieu d'incrémenter $i

    désolé pour le dérangement ...

  5. #5
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    Bonjour,

    Si je suis ta logique les deux boucles sont pas sur le même style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	$d=$l;
    	$f=$l+2	;
    		for($l = $d ; $l <= $f ; $l++) { //on récupère les infos actuelles
    			$infos[$l] = fgets($fm);
    			}
    	$i=$m;
    	$e=$m+2	;
    		for($i = $m ; $i <= $e ; $m++) { //on récupère les anciennes infos
    			$infoso[$m] = fgets($fo);
    			}
    En effet $i revient tjs à la même valeur ...

    d'ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	$d=$l;
    	$f=$l+2	;
    		for($l = $d ; $l <= $f ; $l++) { //on récupère les infos actuelles
    			$infos[$l] = fgets($fm);
    			}
    	$i=$m;
    	$e=$m+2	;
    		for($m = $i ; $m <= $e ; $m++) { //on récupère les anciennes infos
    			$infoso[$m] = fgets($fo);
    			}
    car sinon for($i = $m ; $i <= $e ; $m++) boucle infinie

  6. #6
    Membre Expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Par défaut
    En même temps

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Images] Galerie photo (Fatal error: Allowed memory size)
    Par Dookie dans le forum Bibliothèques et frameworks
    Réponses: 15
    Dernier message: 25/05/2010, 12h13
  2. [PEAR][Mail] Fatal Error : Allowed memory size of 8388608 bytes exhausted
    Par bigben89 dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 20/10/2008, 18h01
  3. Réponses: 3
    Dernier message: 08/08/2007, 19h08
  4. [Librairies] zip.lib.php Fatal error: Allowed memory size of 8388608 bytes exhausted
    Par manaboko dans le forum Bibliothèques et frameworks
    Réponses: 9
    Dernier message: 22/05/2006, 10h42
  5. Fatal error: Allowed memory size of...
    Par Webfab dans le forum Langage
    Réponses: 3
    Dernier message: 17/09/2005, 10h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo