Parser fejl - en tredjedel af posterne
Følgende udmærkede parser har i en lang periode fungeret klippestabilt.Scriptet henter dagligt over 100 poster, men som et lyn fra en klar himmel henter scriptet nu under en tredjedel af posterne.
Har checket scriptet på 3 forskellige server, dog med samme nedslående resultat. Nogle bud på en løsning?
<?php
$GLOBALS['data'] = array();
$GLOBALS['current'] =& $GLOBALS['data'];
function startTag($parser, $name, $attribs) {
$GLOBALS['current'][$name]['parent'] =& $GLOBALS['current'];
$GLOBALS['current'] =& $GLOBALS['current'][$name];
}
function endTag($handler, $name) {
$temp =& $GLOBALS['current'];
$GLOBALS['current'] =& $temp['parent'];
unset($temp['parent']);
}
function data($handler, $data) {
$data = trim($data);
if(!empty($data)) {
$GLOBALS['current'][] = $data;
}
}
$parser = xml_parser_create('') or die('Failed to create parser');
xml_set_element_handler($parser, 'startTag', 'endTag') or die ("Failed to set element handler");
xml_set_character_data_handler($parser, 'data') or die ("Failed to set data handler");
$fp = fopen('http://www.andetwebsted.dk/sti/data.htm', 'r');
while ($xml = fread($fp, 40960))
xml_parse($parser, $xml, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($parser);
$data = $GLOBALS['data']['INDEXFELT']['D1'];
foreach($data as $name => $value) {
foreach($value as $index => $text) {
$tempArr[$index][$name] = $text;
}
}
$db = mysql_connect('xxx', 'xxx', 'xxx');
mysql_select_db('xxx', $db);
$dbfields = "D0, D1, " . implode(', ', array_keys($tempArr[0]));
foreach($tempArr as $value) {
$dbdata = implode("', '", $value);
$sql = "INSERT INTO TABEL ($dbfields) VALUES('INDEXFELT', 'D1', '$dbdata')";
mysql_query($sql, $db);
}
mysql_close($db);
?>
##
<?xml version='1.0' encoding='ISO-8859-1'?>
<INDEXFELT>
<D1>
<D2>post1</D2>
<D3>post1</D3>
<D4>post1</D4>
<D5>post1</D5>
<D6>post1</D6>
<D7>post1</D7>
<D8>post1</D8>
<D9>post1</D9>
<D10>post1</D10>
</D1>
<D1>
<D2>post2</D2>
<D3>post2</D3>
<D4>post2</D4>
<D5>post2</D5>
<D6>post2</D6>
<D7>post2</D7>
<D8>post2</D8>
<D9>post2</D9>
<D10>post2</D10>
</D1>
<D1>
<D2>post3</D2>
<D3>post3</D3>
<D4>post3</D4>
<D5>post3</D5>
<D6>post3</D6>
<D7>post3</D7>
<D8>post3</D8>
<D9>post3</D9>
<D10>post3</D10>
</D1>
</INDEXFELT>
## osv.
