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.