Kod
<?php
class kursyWalut
{
//Funkcja zwraca link do najnowszego pliku XML. W zaleznosci od opcjonalnego parametru
//$typ funkcja zwraca link do pliku z kursem typu a lub c (domyslnie a)
private function pobierzNazwe($typ='a')
{
//Pobieram plik dir.txt, wrzucam jego zawartosc do tabeli i odwracam kolejnosc
//tabeli, aby na początku otrzymac najnowsze nazwy plikow XML
$plik=array_reverse(file('http://nbp.pl/kursy/xml/dir.txt'));
//Zwracam nazwe najnowszego pliku XML w zaleznosci od typu: a lub c
if($typ=='c') {return 'http://nbp.pl/Kursy/xml/'.trim($plik[2]).'.xml';}
else
{return 'http://nbp.pl/Kursy/xml/'.trim($plik[0]).'.xml';}
}
//Funkcja zwraca obiekt z kursem walut po przetworzeniu go z formatu XML
//do ktorego link podany jest w parametrze $adres
private function parsujXML($adres)
{
return simplexml_load_file($adres);
}
//Funkcja pobiera aktualny kurs typu podanego w opcjonalnym parametrze
//$typ (a lub c, domyslnie a) i zapisuje go w bazie danych
public function pobierzKurs($typ='')
{
//Pobiera adres pliku z najnowszym kursem
$plik=$this->pobierzNazwe($typ);
//Zwraca kurs w postaci obiketu
$kurs=$this->parsujXML($plik);
//Serializuje obiekt
$kurs=serialize($kurs);
//Oczyszczanie zserializowanego obiketu z cudzyslowow
$kurs=mysql_real_escape_string($kurs);
//Zapis do bazy danych
$result=mysql_query('INSERT INTO kursy VALUES(NULL,"'.$kurs.'")');
}
}
$sql=mysql_connect('localhost','','');
mysql_select_db('waluty');
$result=mysql_query('SELECT kurs FROM kursy WHERE id=2');
$row=mysql_fetch_array($result);
$kurs=unserialize($row[0]);
echo '<pre>';
print_r($kurs);
echo '</pre>';
?>
class kursyWalut
{
//Funkcja zwraca link do najnowszego pliku XML. W zaleznosci od opcjonalnego parametru
//$typ funkcja zwraca link do pliku z kursem typu a lub c (domyslnie a)
private function pobierzNazwe($typ='a')
{
//Pobieram plik dir.txt, wrzucam jego zawartosc do tabeli i odwracam kolejnosc
//tabeli, aby na początku otrzymac najnowsze nazwy plikow XML
$plik=array_reverse(file('http://nbp.pl/kursy/xml/dir.txt'));
//Zwracam nazwe najnowszego pliku XML w zaleznosci od typu: a lub c
if($typ=='c') {return 'http://nbp.pl/Kursy/xml/'.trim($plik[2]).'.xml';}
else
{return 'http://nbp.pl/Kursy/xml/'.trim($plik[0]).'.xml';}
}
//Funkcja zwraca obiekt z kursem walut po przetworzeniu go z formatu XML
//do ktorego link podany jest w parametrze $adres
private function parsujXML($adres)
{
return simplexml_load_file($adres);
}
//Funkcja pobiera aktualny kurs typu podanego w opcjonalnym parametrze
//$typ (a lub c, domyslnie a) i zapisuje go w bazie danych
public function pobierzKurs($typ='')
{
//Pobiera adres pliku z najnowszym kursem
$plik=$this->pobierzNazwe($typ);
//Zwraca kurs w postaci obiketu
$kurs=$this->parsujXML($plik);
//Serializuje obiekt
$kurs=serialize($kurs);
//Oczyszczanie zserializowanego obiketu z cudzyslowow
$kurs=mysql_real_escape_string($kurs);
//Zapis do bazy danych
$result=mysql_query('INSERT INTO kursy VALUES(NULL,"'.$kurs.'")');
}
}
$sql=mysql_connect('localhost','','');
mysql_select_db('waluty');
$result=mysql_query('SELECT kurs FROM kursy WHERE id=2');
$row=mysql_fetch_array($result);
$kurs=unserialize($row[0]);
echo '<pre>';
print_r($kurs);
echo '</pre>';
?>
Wyskakuje mi błąd
Kod
duzo razy taki error:
Warning: unserialize() [function.unserialize]: Node no longer exists in C:\wamp\www\class.kursywalut.php on line 86
SimpleXMLElement Object
Warning: print_r() [function.print-r]: Node no longer exists in C:\wamp\www\class.kursywalut.php on line 88
(
)
Warning: unserialize() [function.unserialize]: Node no longer exists in C:\wamp\www\class.kursywalut.php on line 86
SimpleXMLElement Object
Warning: print_r() [function.print-r]: Node no longer exists in C:\wamp\www\class.kursywalut.php on line 88
(
)
Mogę się jedynie domyślać, że chodzi tu o to, że gdy deserializuje obiekt to nie ma zdefiniowanej klasu SimpleXMLElement albo coś takiego. To są moje domysły.
Proszę o pomoc i z góry dziękuję.