Archives des forums MMO/MMORPG > Dark Age of Camelot > DAoC - Technique > Retour sur les fichiers XML: l'état des serveurs...
Retour sur les fichiers XML: l'état des serveurs...
Par Feroas de Fouen le 14/9/2002 Ã 4:15:33 (#2154022)
(ça donnait: XXXX joueurs, Serveur Up).
Ce script marchait parfaitement, mais depuis peu (arrivée des nouvelles chroniques?) il ne marche plus, je n'ai plus rien d'écrit là où avant il y avait l'état du serveur.
J'ai fait tout un tas de tests, mais je n'ose vous donner le résultat tellement il est aberrant (il n'y a aucune erreurs, pourtant le dieu de l'informatique ne veut pas que ça marche comme ça devrait.)
Donc ma question est simple, quelqu'un pourrait-il me fournir un script qui marche et qui donne le nombre de connectés et l'état du serveur de Brocéliande?
Question subsidiaire: expliquer moi pourquoi ce script ne marche pas:
<?php
$ficxml=@fopen("http://www.camelot-europe.com/herald/nb_connected.xml","r");
$ligne=fgets($ficxml,256);
while($ligne=fgets($ficxml,256)) {
if(substr(trim($ligne),0,7)=="<server"){
$pos1=strpos($ligne,"\",1)+1;
$pos2=strpos($ligne,"\",$pos1)-1;
$serveur=substr($ligne,$pos1,($pos2-$pos1)+1);
};
if($serveur=="Broceliande") {
switch(substr(trim($ligne),0,7)) {
case ",1)+1;
$pos2=strpos($ligne,"<",$pos1)-1;
$population=substr($ligne,$pos1,($pos2-$pos1)+1);
echo "$population joueurs \n";
break;
case ",1)+1;
$pos2=strpos($ligne,"<",$pos1)-1;
$status=substr($ligne,$pos1,($pos2-$pos1)+1);
echo "serveur $status";
break;
};
};
};
fclose($ficxml);
?>
Par Fullblaster le 14/9/2002 Ã 21:35:14 (#2157665)
include("xml_parser_server.php");
$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");
echo ";
echo "Status des Serveurs";
echo ";
$fp = fopen($fichier,"r") or die("Erreur de lecture de $fichier");
while ($data = fread($fp, 1024)) {
xml_parse($xml_parser, $data, feof($fp));
}
fclose($fp);
echo ";
xml_parser_free($xml_parser);
et le fichier php de l'include
<?php
function startElement($parser, $name, $attrs) {
global $server, $first, $ckey;
$ckey = $name;
if ($name == "SERVER") {
while (list ($key, $val) = each ($attrs)) {
if ($key == "NAME") {
$server[0] = $val;
}
if ($key == "TYPE") {
$server[1] = $val;
}
if ($key == "UPDATED") {
$server[2] = $val;
}
}
}
if ($name == "POPULATION") {
$first = 1;
}
if ($name == "STATUS") {
$first = 1;
}
}
function endElement($parser, $name) {
global $server, $first, $ckey;
if ($name == "SERVER") {
if (utf8_decode($server[1]) == "French") {
$text1 = sprintf("%s%s", utf8_decode($server[0]), utf8_decode($server[4]));
$text2 = sprintf("%s joueurs", utf8_decode($server[3]));
echo $text1;
echo $text2;
echo ";
}
}
}
function characterData($parser, $data) {
global $server, $first, $ckey;
if (($first == 1) && ($ckey == "POPULATION")) {
$server[3] = $data;
$first = 0;
}
if (($first == 1) && ($ckey == "STATUS")) {
$server[4] = $data;
$first = 0;
}
}
Desole j ai pas netoyer le code y a peut etre 1 ou 2 trucs qui sont relatifs a ma presentation.
Par Feroas de Fouen le 14/9/2002 Ã 23:35:33 (#2158318)
Par laquiche le 16/9/2002 Ã 18:08:10 (#2168571)
un probleme mal gerer par mon script asp (a s arracher les cheveux)
la ca marche mais je ne sais pas encore si c parceque j ai reecrit mon script comme un dieu ou bien parceque en ce moment j ai de la chance et qu aucun fort n est la propriété de ses putains de guildes avec accent .
lol
seul le temps me le dira.:lit:
Re: Retour sur les fichiers XML: l'état des serveurs...
Par Alleria le 17/9/2002 Ã 0:42:11 (#2171131)
Provient du message de Feroas de Fouen
Question subsidiaire: expliquer moi pourquoi ce script ne marche pas:$ligne=fgets($ficxml,256);
est tu certain que les lignes du fichier que tu parses font moins de 256 caractères ?
en tous cas l'usage de fgets() me parait douteux pour parser un language dans lequel un retour chariot n'a aucune signification... fscanf() par exemple serait plus adapté.
Par Okam le 20/9/2002 Ã 10:37:13 (#2193796)
Provient du message de laquiche
Pour info : moi j ai eu des probleme avec le fichier xml qd il y a eu des guildes proprietaires de forts et qui contenaient des accents ds le nom de l eurs guilde.
Ajoutes simplement dans ton :
Sinon Multimania a désactivé la fonction fopen, donc impossible de lire les chroniques depuis 15j sur un site Multimania/Lycos (Free accepte cette fonction par contre).
Par Shinigami le 20/9/2002 Ã 10:44:35 (#2193818)
- Shinigami -
Par Aron le 20/9/2002 Ã 11:29:18 (#2194033)
Par Mael Thagg le 20/9/2002 Ã 11:53:19 (#2194149)
Provient du message de Shinigami
eeeuuuhhhh, juste une question : XSL vous connaissez?
- Shinigami -
J'utilise CookTop, éditeur XML/XSL freeware : http://www.xmlcooktop.com/
Pour les infos je vais là :
- http://www.allhtml.com/xsl/index.php
- http://www.laltruiste.com/coursxsl/sommaire.html
- http://www.cabinfo.com/xsltut/xsl_tut.htm
Par Shinigami le 30/9/2002 Ã 10:57:47 (#2258198)
- Shinigami -
JOL Archives 1.0.1
@ JOL / JeuxOnLine