Witam, mam taki kod w PHP:
<?php
$filename = "1.xml";
$handle = fopen($filename, "r"); $atryb = simplexml_load_file('1.xml');
if($atryb)
{
foreach ($atryb->tables->table[0]->rows as $p)
{
for ($i=0; $i<$limit; $i++)
{
$data = $p->row[$i]->f[2];
$czas = $p->row[$i]->f[3];
$user = $p->row[$i]->f[6];
$kod = $p->row[$i]->f[7];
if ($user != 'null')
{
echo $data . " // " . $czas . " // " . $user . " // " . $kod . " <br />"; }
else {}
}
}
}
?>
Linijka kodu
"Oblicza" ilość paczek danych - pomiędzy <row> i </row> zamieszczonych jest 9 par <f></f> w których zamieszczone są dane które mnie interesują.
Skrypt jak najbardziej działa z tym, że przy 496645 paczkach danych z polami <f></f> wykonanie trwa bardzo długo.
Moje pytanie brzmi czy Ktoś ma pomysł na przyśpieszenie jego działania.
Za wszelką pomoc, pomysły i sugestie będę bardzo wdzięczny (IMG:
style_emoticons/default/smile.gif)
XLM wygląda następująco:
<?xml version="1.0" encoding="utf-8"?>
<?xml:stylesheet type="text/xsl" href="XMLtoHTMLTransform.xsl"?>
<db xmlns:roger="http://www.blablabla.pl"><params><param name="parser_version" value="2.6"/>
<param name="data_type" value="Events"/>
<param name="created" value="2011-09-21T08:39:08"/>
<param name="PRMaster_version" value="4.3.3.516"/></params>
<tables><table name="EventsCache">
<fields>
<field name="ECUniqueID" type="Integer"/>
<field name="ECID" type="AutoInc"/>
<field name="ECDate" type="Date"/>
<field name="ECTime" type="Time"/>
<field name="ECCode" type="Integer"/>
<field name="ECUserID" type="Integer"/>
<field name="ECUserGUID" type="String"/>
<field name="ECReaderID" type="Integer"/>
<field name="ECDoorType" type="Integer"/>
</fields>
<rows>
<row>
<f>2511795</f>
<f>1133366</f>
<f>2010-11-01</f>
<f>00:04:00</f>
<f>142</f>
<f>268435456</f>
<f>null</f>
<f>4</f>
<f>32</f>
</row>
<row>
<f>2511796</f>
<f>1133367</f>
<f>2010-11-01</f>
<f>00:04:10</f>
<f>143</f>
<f>268435456</f>
<f>null</f>
<f>4</f>
<f>32</f>
</row>
...
Ten post edytował mandark_zg 22.09.2011, 12:47:38