Mam klasę do obsługi plików XML
<?
class XML
{
var $path;
var $FileName;
var $Key;
function XML()
{}
function ReadDatabase()
{
$data = implode(\"\",file($this->FileName)); $parser = xml_parser_create();
xml_parser_set_option($parser,XML_OPTION_CASE_FOLDING,0);
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
xml_parse_into_struct($parser,$data,$values,$tags);
xml_parser_free($parser);
foreach ($tags as $key=>$val)
{
if ($key == $this->Key) {
$molranges = $val;
for ($i=0; $i < count($molranges); $i+=2
) {
$offset = $molranges[$i] + 1;
$len = $molranges[$i + 1] - $offset;
$tdb[] = $this->parseMol(array_slice($values, $offset, $len)); }
} else {
continue;
}
}
return $tdb;
}
function sortdb($odb, $kol, $jak=1)
{
$i=0;
if (count($odb)!=0
) foreach ($odb as $d) $tdb[$i++]=$d->$kol;
if (count($kdb)>0
) foreach ($kdb as $k) $db[$i++]=$odb[$k]; return $db;
}
function utagi($tag)
{
return $t;
}
function selectmeny($kol,$co,$tryb=0)
{
$c=0;
switch ($tryb)
{
case 0:
foreach ($this->db as $d) if ($d->$kol==$co) $db2[$c++]=$d;
break;
case 1:
foreach ($this->db as $d) if ($d->$kol>$co) $db2[$c++]=$d;
break;
}
return $db2;
}
function selectmenydb($db, $kol,$co,$tryb=0)
{
$c=0;
switch ($tryb)
{
case 0:
foreach ($db as $d) if ($d->$kol==$co) $db2[$c++]=$d;
break;
case 1:
foreach ($db as $d) if ($d->$kol>$co) $db2[$c++]=$d;
break;
}
return $db2;
}
function selectone($kol,$co)
{
if (count($this->db)!=0
) foreach ($this->db as $d) if ($d->$kol==$co) break; else $d=false;
else $d=false;
return $d;
}
function elem($v)
{
$ret='';
if (($v!='')&&($v!='-')) $ret=$v;
return $ret;
}
}
class UniR extends XML
{
function UniR($aa=null)
{
$this->XML();
$this->Key=\"element\";
if ($aa!=null) foreach ($aa as $k=>$v) {$this->$k = $aa[$k];}
}
}
class UniD extends UniR
{
var $db;
function UniD($filename)
{
$this->UniR();
$this->FileName=$filename;
$this->db = $this->ReadDatabase();
}
function parseMol($mvalues)
{
for ($i=0; $i < count($mvalues); $i++) {$mol[$mvalues[$i][\"tag\"]] =$mvalues[$i][\"value\"]; } return new UniR($mol);
}
}
?>
Działa to poprawnie u mnie na localhost (PHP4), podobnie na
www.skaruz.com/pb/, nie działa natomiast na
www.verdox.pl/pb/ ani na
pb.mentat.pl/test3/.
Pojawia się błąd
Kod
Fatal error: Cannot instantiate non-existent class: unid in /home/users/pb/public_html/test3/index.php on line 4
Linia 4 to
Kod
$daneXML = new UniD('dane/komentarze.xml');
Sądzę że jest związane z róznicami pomiędzy PHP4 a PHP5. Jak w prosty sposób to naprawić, aby działało pod obydwoma wersjami?