Avatar billede mads1987 Nybegynder
21. december 2006 - 14:36 Der er 7 kommentarer

Fatal error: Allowed memory size og XML

Jeg får oplever en mærkelig fejl ved dette script:

<?php

// Extracts content from XML tag
function GetElementByName ($xml, $start, $end) {

  global $pos;
  $startpos = strpos($xml, $start);
  if ($startpos === false) {
      return false;
  }
  $endpos = strpos($xml, $end);
  $endpos = $endpos+strlen($end);   
  $pos = $endpos;
  $endpos = $endpos-$startpos;
  $endpos = $endpos - strlen($end);
  $tag = substr ($xml, $startpos, $endpos);
  $tag = substr ($tag, strlen($start));

  return $tag;

}
function HentXML(){
    // Open and read xml file. You can replace this with your xml data.

        $file = "fil.xml";
        $file = str_replace(" ","",$file);
        $pos = 0;
        $Nodes = array();
       
        if (!($fp = fopen($file, "r"))) {
          die("could not open XML input");
        }
        while ($getline = fread($fp, 4096)) {
          $data = $data . $getline;
        }
       
        $count = 0;
        $pos = 0;
       
        // Goes throw XML file and creates an array of all <XML_TAG> tags.
        while ($node = GetElementByName($data, "<result>", "</result>")) {
          $Nodes[$count] = $node;
          $count++;
          $data = substr($data, $pos);
        }
       
        // Gets infomation from tag siblings.
        for ($i=0; $i<$count; $i++) {
        $name = GetElementByName($Nodes[$i], "<name>", "</name>");
        }
   
   
   
    echo "$navn";
}
HentXML();
?>

Fejl:
Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 554 bytes) on line 19

Hvorfor siger den det? Jeg har opdaget at jeg kan afhjælpe problemet ved at undlade at lade HentXML() ligge i en funktion, men blot kører den normalt.
Avatar billede kinderaeg Nybegynder
22. december 2006 - 10:57 #1
PHP er som standard sat til kun at have 8MB allokeret til at udføre scripts, og det overskrider du tilsyneladende. Prøv evt at ændre den allokerede mængde med ini_set("memory_limit","20M");
Avatar billede mads1987 Nybegynder
22. december 2006 - 15:56 #2
Det hjælper mig ikke, det ændre ikke noget.
Avatar billede kinderaeg Nybegynder
23. december 2006 - 20:06 #3
Hvor stor er din xml-fil? Og i øvrigt, hvorfor ikke anvende de indbyggede xml-elementer, i stedet for at bygge dine egne?
Avatar billede mads1987 Nybegynder
27. december 2006 - 22:09 #4
ca. 30 linier. Hvorledes kan jeg bruge de indbyggede?
Avatar billede kinderaeg Nybegynder
28. december 2006 - 11:09 #5
Det kan jo gøres på flere måder, men hvis du opbygger en xls-fil (schema-fil) kan du fx bruge http://dk2.php.net/manual/en/ref.xsl.php
Avatar billede mads1987 Nybegynder
03. juli 2007 - 15:03 #6
Smid gerne et svar kinderaeg
Avatar billede kinderaeg Nybegynder
06. juli 2007 - 13:57 #7
Fik du det til at virke?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester