TOUT sur les XML, C'est par ici !

Répondre
Partager Rechercher
En ce jour de grâce 2004 (le 27/01) les chroniques de Brocéliande et sûrement des autres serveurs sont à nouveaux HS (pour preuve seuls les rangs - de 2L sont affichées sur mid/broc)

Autrement dis : patience GOA va corriger (enfin j'espère), peut être un bug du aux test de patch de la 1.65 qui sait ? a chaque patch les chroniques sont HS un petit (voir long) moment.
Prochaine mise à jour ......... TOA ?
On va dire qu'ils les testent pour la version 1.65

Edit pour éviter le flood sur ce post technique
En fait je subodorais que nous allions nous retrouver sans chroniques entre la 1.65 et TOA
A L'AIDE!
koukiz, bon je vous explike: moi nul en xml
je souhaite creer une signature dynamique pour ma guilde, voila le code de création:
<?
$im = imagecreatefrompng("test.png");
$textcolor = imagecolorallocate($im, 255, 255, 255);
imagestring($im, 10, 60, 38, "$chname", $textcolor);
imagestring($im, 3, 60, 60, "$chrace", $textcolor);
imagejpeg($im);
?>

bon il n'y a pas toutes les infos de rentrée, mais en fait ce qu'il e manque, c'est le moyen de récupérer les infos du XML de goa, et les transformées en variables tel que: $chname=nom_du_perso
$chrace=race_du_perso etc...

merci de vos réponses
pour ma part je fais XML->php/mysql->Image
mais la pour te dire comment faire a partir directement du xml, je pense que ça serait lourd comme tache (surtout si ça fais appel a ce script a chaque fois que l'image est générée)
__________________
http://wow-cdd.hell-stats.info/Gryndel_1.png
voici le code que j'utilise sur mes chroniques, fait par Leandri (qui a poster plus haut)

Code PHP:

include("fiche_perso2.php");

    
$fontfile "fonts/verdana.ttf";
    
$fontfile2 "fonts/ariblk.ttf";
    
$imgFnd "images/fnd_nre.png";
    
$colR    255;
    
$colG    255;
    
$colB   255;

  
$im imagecreatefrompng($imgFnd);

  
$textcolor imagecolorallocate($im$colR$colG$colB);
  
imagettftext ($im8012423$textcolor$fontfile"Nom : " utf8_decode($name));
  
imagettftext ($im8012435$textcolor$fontfile2utf8_decode($guilde_name));
  
imagettftext ($im8012447$textcolor$fontfile"Race : " $race);
  
imagettftext ($im8012459$textcolor$fontfile"Classe : " $classe);
  
imagettftext ($im8012471$textcolor$fontfile"Level : $lvl - Pr : $rp");
  
imagettftext ($im8012483$textcolor$fontfile$realm_title " de $server (" $realm_lvl ")");

imagepng($im); 
Malheureusement je n'ai pas ce qu'il faut pour récuperer et intégrer l'embleme sur cette image dynamique...

si ton fichier (contenant ce code) s'appel par exemple signature.php, pour afficher la signature d'une personne suffit de mettre ceci comme url : signature.php?server=NomDuServeur&guilde=ChiffreDeLaGuilde&name=NomDuPerso

Dans ce code il y a un include (ici c'est par exemple la page fiche_perso2.php qui est appelée)
Le code de cette page c'est tout simplement le code que tu utilises pour afficher les infos d'une guilde, sauf que dans cette page tu ne fais pas afficher les infos recupérer... en gros ça donne un truc du genre : *** Edit *** : oublie de précision de ma part :P c'est le code qui affiche les membres d'une guilde, avec une petite modif qui permet de filtrer et de n'afficher que les infos d'une personne, définie par $name = $_GET['name']; et par if ($name == $value["name"]) { *** Fin de l'edit ***

Code PHP:

$name $_GET['name'];
    foreach (
$gu as $key=>$value){
        if (
$name == $value["name"])
        {
        
$name  $value['name'];
        
$race $value['race'];
        
$classe $value['class'];
        
$lvl trim($value['level']);
        
$gRank guildrank($value['guildrank']);
        
$rp number_format($value['rp'], 0'.'' ');
        
$lwrp number_format($value['lastweekrp'], 0'.'' ');
        
$realm_lvl realmlevel($value['rp']);
        
$realm_title realmtitle($value['rp']);
        
$connex connexion($value['laston']);
        
$forge $value['Forge'];
        
$armurerie $value['Armurerie'];
        
$couture $value['Couture'];
        
$empennage $value['Empennage'];
        
$arcanes $value['Arcanes'];
        
$alchimie $value['Alchimie'];
        }
        } 
et après tu utilises les valeurs que t'as envie.. comme tu peux voir j'ai préparé pleinnes de valeur au cas où j'aurais envie de faire des signatures plus complete, ou si un jour je sois moi nul et que je soit capable de proposer des choix que la personne fait pour afficher ce qu'elle veut sur sa signature (heu... j'ai l'impression que j'explique d'une façon très... bordélique... désolé )

( ça donne ceci : http://www.generations-web.com/daoc/guildes/signature.php?server=Broceliande&amp;guilde=1071&amp;name=Nymfe (là avec quelque modif spéciale pour ma guilde) ou encore ceci : http://www.generations-web.com/daoc/guildes/signature.php?server=Broceliande&amp;guilde=646&amp;name=Nymfette (aspet general) )

Pour l'emblème, et ben c'est la deuxième question "aide" que je n'ai pas encore posé ici, vu que je patoge tjs dans la gadoue avec ce foutu code pour afficher les liste de guildes d'un serveur dont je parle quelque message plus haut ( )

voili voilou

Edit : tiens apparement je ne sais pas utiliser la fonction "[img]" de ce forum grrrr
j'ai pas mis tout le code de la page fiche_perso2.php
il ne s'agit que d'un exemple...

fais une copie de ta page actuelle qui affiche la liste des membres d'une guilde, et enlève les options qui font afficher les données... il faut juste que le parser recupère les données qui seront traité dans l'autre page (appelée dans l'exemple "signature.php") et affichées...
en fait voila le code que j'ai pour le moment, bon ya un peut du trafic de partout :/

Code PHP:


$name  
$value['name'];
$race $value['race'];
$classe $value['class'];
$lvl trim($value['level']);
$rp number_format($value['rp'], 0'.'' ');
$lwrp number_format($value['lastweekrp'], 0'.'' ');


$fontfile "arial.ttf";
$fontfile2 "arial.ttf";
$imgFnd "test.png";
$colR 255;
$colG 255;
$colB 255;

$im imagecreatefrompng($imgFnd);

$textcolor imagecolorallocate($im$colR$colG$colB);
imagettftext ($im1506045$textcolor$fontfile"Nom : " utf8_decode($name));
imagettftext ($im806050$textcolor$fontfile2utf8_decode($guilde_name));
imagettftext ($im806060$textcolor$fontfile"Race : " $race);
imagettftext ($im806070$textcolor$fontfile"Classe : " $classe);
imagettftext ($im806080$textcolor$fontfile"Level : $lvl - Pr : $rp");
imagettftext ($im806090$textcolor$fontfile$realm_title " de $server (" $realm_lvl ")");

imagepng($im);

$xml_parser xml_parser_create();
xml_set_element_handler($xml_parseur"ouverture""fermeture"); 
xml_set_character_data_handler($xml_parseur"texte"); 
xml_set_default_handler($xml_parseur,"defaut"); 
$fp fopen("http://www.camelot-europe.com/herald/servers/Broceliande/guilds/2961.xml""r") or die("Fichier introuvable. L'analyse a ete suspendue"); 
while (
$fdata fread($fp2048)){ 
xml_parse($xml_parseur$fdatafeof($fp)) or die( 
sprintf("Erreur XML : %s à la ligne %d\n"
xml_error_string(xml_get_error_code($xml_parseur)), 
xml_get_current_line_number($xml_parseur)) 
); 

http://www.b-benera.com/test.php?name=keach

et voila ce que ca me donne, kkun peut m'expliquer la je suis encore perdu

en mysql je dirait qu'il faudrait un petit:

SELECT * WHERE $name='name';

mais en XML je sait pas comment on traduit ca
visiblement il manque une partie du code ou tu demande au parser d'aller chercher les infos du perso

Tu devrais regarder l'exemple au dessus de ton post

Moi j'ai fait différemment puisque j'ai une base de donnée complete de tous les persos sur les serveurs français lol

Citation :
Pour l'emblème, et ben c'est la deuxième question "aide" que je n'ai pas encore posé ici, vu que je patoge tjs dans la gadoue
hop hop un lien de camelotherald avec les images de tous les emblemes et de tous les "fonds" clickez ici
kaich, pour le code qui analyse et récupère les donnée, j'ai utilisé celui de Glenfiddich, qui se trouve ici

il te suffit simplement de remplacer :

Code PHP:

foreach ($gu as $key=>$value){ 

par
Code PHP:

$name $_GET['name']; // récupère le nom dans l'url
    
foreach ($gu as $key=>$value){
        if (
$name == $value["name"])
        { 
ce qui te permet de récupérer que les infos uniquement du perso dont le nom sera $name = $_GET['name']
puis remplacer :
Code PHP:

$content_output .= '<td>'.$value['name'].'</td> 

par (par exemple)
Code PHP:

$name  $value['name']; 

et bien verifier qu'il n'y ai plus rien qui s'affiche sur la page...
ceci constitue une page, par exemple guilde.php, ou le nom que tu veux...

ensuite, dans une autre page tu met le code qui va recup les données de la page ci-dessus et créer une image, ce qui donne ceci, par exemple :

Code PHP:

include("guilde.php"); // va chercher les données recuperer par le parser

$fontfile "arial.ttf";
$fontfile2 "arial.ttf";
$imgFnd "test.png";
$colR 255;
$colG 255;
$colB 255;

$im imagecreatefrompng($imgFnd);

$textcolor imagecolorallocate($im$colR$colG$colB);
imagettftext ($im1506045$textcolor$fontfile"Nom : " utf8_decode($name));
imagettftext ($im806050$textcolor$fontfile2utf8_decode($guilde_name));
imagettftext ($im806060$textcolor$fontfile"Race : " $race);
imagettftext ($im806070$textcolor$fontfile"Classe : " $classe);
imagettftext ($im806080$textcolor$fontfile"Level : $lvl - Pr : $rp");
imagettftext ($im806090$textcolor$fontfile$realm_title " de $server (" $realm_lvl ")");

imagepng($im); 
Imaginons que tu appelles cette page signature.php, et ben pour avoir la signature d'un personnage bien précis, suffit de mettre (par exemple, car tu peux choisir d'autre terme)

signature.php?server=NomDuServeur&guild=NumeroDeLaGuilde&name=NomDuPerso
et j'ai oublié de préciser que dans le code "parser" de Glenfi, il ne fais pas oublier de changer ceci :

Code PHP:

$guild->xml_file "http://www.camelotherald.com/guilds/Merlin/47.xml"
par :
Code PHP:

$guild->xml_file "http://www.camelot-europe.com/herald/servers/NomDuServeur/guilds/NumeroDeLaGuilde.xml"
sinon, pour mon problème d'adaptation du code de Glenfi pour la liste des guildes, je ne m'en sort pas

je met quoi dans cette fonction ??? :

Code PHP:

function characterData($parser$data) { 

sinon, ça ne pose pas de porblème particulier le fait que le tag de fin soit /> au lieu d'un truc du style </guild> ?
normalement rien, puisque ya pas de tags dans le style <guild>nom de ma guilde</guild>

cette fonction permet uniquement de soustirer du texte entre un tag d'ouverture et un tag de fermeture

sinon le /> ne t'en souci pas
j'ai un problème avec cette ligne:

Code PHP:


        
if (!($fp fopen($this->xml_file"r"))) { 
            die(
"could not open XML input"); 
Warning: fopen("", "r") - Inappropriate ioctl for device in /home/sites/site16/web/test.php on line 167
could not open XML input

voila ce que ca me dit a cette ligne
Bonjour,

J'ai un gros probleme :

Voici l'adresse à laquelle je renvoie :

$fp = fopen("http://camelot-europe.com/herald/servers/Ys/guilds/960.xml", "r") or die("Fichier introuvable. L'analyse a ete suspendue");

Or lorsque je vais sur la page, le fichier reste introuvable.

Pourtant sur d'autres sites ou il y a des chroniques, celles de ma guilde s'affichent tres bien.

Je ne comprend pas :/ Aidez moi

Voici où j'affiche les chroniques de am guilde :
http://www2.awake2life.com/conclaves...tconclaves.php


Et mon hébergeur accepte bien le php et e xml : j'y heberge deux forums, et ces chroniques marchaeint bien auparavant.... Je sais qu'elles sont buggées mais pourquoi diable s'affichent elles sur d'autres site et pas chez moi?
J'ai bien changé l'adresse mais ca marche toujours pas..... ET j'ai trouvé la réponse : mon hébergeur n'accepte pas la nouvelle version es fichiers xml !!

Avant ca marchait et maintenant plus du tout

Donc attention pour ceux qui affichent des chroniques : même les hébergeurs chez qui ca marchait auparavant peuvent tres bien ne plus accepter les nouvelles chroniques :/

(qu'on se le dise, franchement ils auraient pu s'arrranger autrement chez GOA)
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés