Witam, chciałbym napisać skrypt, który czyta dane z tego pliku xml:
http://clodogame.fr/dev/api/user.97.xml . Jest to banalne, ale parę poprawek zmusza mnie do zmiany sposobu. Skrypt, który napisałem wymaga codziennej zmiany położenia danych. A nowy skrypt napisany przez kolegę nie działa poprawnie. Może wstawię potrzebne informacje:
Stara wersja skryptu:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="refresh" content="60" />
<title>My HighScore 1.3 by Trecco</title>
</head>
<body bgcolor="#000000" text="#FFFFFF">
<?php
echo '<center><big><b>My HighScore 1.3 </b></big><small>by Trecco</small><br><br><br></center>';
echo '<font color="red">'; //Chriser
$plik = simplexml_load_file("http://clodogame.fr/dev/api/user.70.xml");
foreach($plik as $wartosc)
echo($wartosc->position); echo($wartosc->gang->name); echo '<a href="http://highscore.clodogame.fr/fight/?to=Chriser"><img border="0" src="http://media.pennergame.de/img/att.gif"/></a>';
echo '<font color="red">'; //parisH
$plik = simplexml_load_file("http://clodogame.fr/dev/api/user.117.xml");
foreach($plik as $wartosc)
echo($wartosc->position); echo($wartosc->gang->name); echo '<a href="http://highscore.clodogame.fr/fight/?to=parisH"><img border="0" src="http://media.pennergame.de/img/att.gif"/></a>';
echo '<font color="green">'; //Trecco
$plik = simplexml_load_file("http://clodogame.fr/dev/api/user.97.xml");
foreach($plik as $wartosc)
echo($wartosc->position); echo($wartosc->gang->name); echo '<a href="http://highscore.clodogame.fr/fight/?to=Trecco"><img border="0" src="http://media.pennergame.de/img/att.gif"/></a>';
etd.
echo '<big>Legenda:</big><br>'; echo '<small><font color="green">Kolor zielony - sojusznik</font><br>'; echo '<font color="red">Kolor czerwony - wrog</font><br>';
echo '<center><br><br><br>Copyright Š 2009 Tabela Powered By Trecco™</center></small>';
?>
</body>
</html>
I tak, nowy skrypt miał pobierać dane z pliku xml, jednak zamiast pisać każdemu oddzielnie pobierał id z pliku tekstowego, skrypt sortuje wyniki wg "points" które widnieje w xml'u.
<?php
class gracz
{
}
foreach($plik as $id)
{
$wartosc = simplexml_load_file("http://clodogame.fr/dev/api/user.".$id.".xml");
$obiekty[$i] = new gracz;
$obiekty[$i] -> position = $wartosc->position;
$obiekty[$i] -> name = $wartosc->name;
$obiekty[$i] -> gang->name = $wartosc->gang->name;
$obiekty[$i] -> points = $wartosc->points;
$obiekty[$i] -> position = $wartosc->position;
$obiekty[$i] -> name = $wartosc->name;
$obiekty[$i] -> points = $wartosc->points;
$baza[$i] = intval($wartosc->points); }
foreach($baza as $key => $value)
{
echo $obiekty[$key]->position; echo $obiekty[$key] -> name; echo '<a href="http://www.clodogame.fr/fight/?to='.$obiekty[$key] -> name.'"><img border="0" src="http://media.clodogame.fr/img/att.png"/></a>'; echo $obiekty[$key] -> gang -> name; echo $obiekty[$key] -> points; }
?>
Plik tekstowy "id.txt":
70
117
97
89
575
28
95
528
489
263
130
568
96
645
341
608
262
42
381
91
Jednak na localu występuję taki błąd:
Warning: simplexml_load_file(http://clodogame.fr/dev/api/user.70%0D%0A.xml) [function.simplexml-load-file]: failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in C:\Program Files\WebServ\httpd\3.php on line 15
Warning
: simplexml_load_file
() [function.simplexml
-load
-file]: I
/O warning
: failed to load external entity
"http://clodogame.fr/dev/api/user.70%0D%0A.xml" in C
:\Program Files\WebServ\httpd\3
.php on line
15
dla każdej z liczb, na hostingach widoczne są liczby podane w pliku id.txt na dole 20 razy
echo '<a href="http://www.clodogame.fr/fight/?to='.$obiekty[$key] -> name.'"><img border="0" src="http://media.clodogame.fr/img/att.png"/></a>';
Prosił bym o pomoc w napisaniu skryptu.