Xml php5 pour une image



  • Je souhaite faire une image avec un texte qui change un fonction d'un lien xml, donx en gros il va lire le lien xml puis affiche les info sur l'image automatiquement
    voila mon code:

    <?php
    Header ('Content-type: image/png');
    Header('Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0');
    Header('Expires: Thu, 19 Nov 1981 08:52:00 GMT');
    Header('Pragma: no-cache');
    
    /******************************************************
     *                     BASICS                         *
     ******************************************************/
    
    // set some dimensions for future use
    $expbar_width = 100;
    $expbar_height = 25;
    
    // create the image from a background jpg
    $image = imagecreatefrompng('bg.png');
    
    // set some colours for future use
    $cool  = imagecolorallocate($image, 81, 86, 96);
    $red   = imagecolorallocate($image, 255, 0, 0);
    $yellow = imagecolorallocate($image, 255, 181, 53);
    
    // set the background colour
    // number or is top left pixel x, top left pixel y, bottom right pixel x, bottom right pixel y
    
    // set the font and print text
    $font = '/avqest.ttf';
    
    /******************************************************
     *                     LOAD DATA                      *
     ******************************************************/
    
    // Create an array for determining the class you play.
    // In the XML this is saved as an int number, the conversion is shown below.
    $class_name = array(   -1 => 'None',
         0 => 'Fighter',
         1 => 'Barbarian',
         2 => 'Rogue',
         3 => 'Magician',
    	 4 => 'Guardian',
         5 => 'Samurai',
         6 => 'Paladin',
         7 => 'Monk',
         8 => 'Ninja',
         9 => 'Warlock',
         10 => 'Headhunter',
         11=> 'Alchemist');
    
    // load xml data in vars
    
    // This is where you load your own info from the xml d2jsp gives. This is a PHP5 only command!
    $data = simplexml_load_file('http://ladderslasher.d2jsp.org/xmlChar.php?i=177624'); 
    $name = $data->name;
    $kills = $data->kills;
    $class = $class_name[(int)$data->classid];
    $exp = $data->exp;
    $level = $data->level;
    $hpmax = $data->hpmax;
    $mqpasses = $data->mqpasses;
    $mqattempts = $data->mqattempts;
    $exp = (int)$exp;
    $percent = calcExpPercent($exp);
    $brpixelX = calcBrPixelX($exp,$expbar_width);
    
    // Create an expbar with bg 'cool' color and the cover of your level in red.
    imagefilledrectangle($image, 180, 59, 280, 71, $cool);
    imagefilledrectangle($image, 180, 59, $brpixelX, 71, $red);
    
    /******************************************************
     *                     TEXT PART                      *
     ******************************************************/
    
    //Example ; ImageTTFText ($image, textsize, angle, right indent, down indent, color, font, "text");
    
    // EXP bar text
    ImageTTFText ($image, 9, 0, 122, 69, $yellow, $font, "To Level: ");
    ImageTTFText ($image, 9, 0, 220, 69, $yellow, $font, $percent."%");
    
    //show name
    ImageTTFText ($image, 9, 0, 122, 33, $yellow, $font, "HC Name: ");
    ImageTTFText ($image, 9, 0, 180, 33, $red, $font, $name);
    
    //show class
    ImageTTFText ($image, 9, 0, 280, 33, $yellow, $font, "Class: ");
    ImageTTFText ($image, 9, 0, 320, 33, $red, $font, $class);
    
    // show lvl
    ImageTTFText ($image, 9, 0, 122, 45, $yellow, $font, "Level: ");
    ImageTTFText ($image, 9, 0, 162, 45, $red, $font, $level);
    
    //show experience
    ImageTTFText ($image, 9, 0, 180, 45, $yellow, $font, "Experience: ");
    ImageTTFText ($image, 9, 0, 250, 45, $red, $font, $exp);
    
    // show kills
    ImageTTFText ($image, 9, 0, 312, 45, $yellow, $font, "Kills: ");
    ImageTTFText ($image, 9, 0, 352, 45, $red, $font, $kills);
    
    // Show HP max
    ImageTTFText ($image, 9, 0, 122, 57, $yellow, $font, "HP: ");
    ImageTTFText ($image, 9, 0, 145, 57, $red, $font, $hpmax);
    
    // SHow MQ passen and attempts
    ImageTTFText ($image, 9, 0, 242, 57, $yellow, $font, "MQ passes/attempts: ");
    ImageTTFText ($image, 9, 0, 357, 57, $red, $font, $mqpasses."/".$mqattempts);
    
    // Show useless shizzle
    ImageTTFText ($image, 9, 0, 122, 82, $yellow, $font, "-------------------------------------");
    ImageTTFText ($image, 9, 0, 122, 95, $red, $font, "GoT-Guild LadderSlasher Player | Bring ce GPs!");
    
    // output and destroy
    imagepng($image);
    imagedestroy($image);
    
    /******************************************************
     *                     FUNCTIONS                      *
     ******************************************************/
    
    /***
     * calculate the exp bar width.
     ***/
    function calcBrPixelX($input,$xpbar_width)
      {
    	$temp1 = fmod($input,1000000);
    	$temp1 = ($temp1/1000000);
    	$temp1 = $temp1 * $xpbar_width;
    	$temp1 = $temp1 + 180;
    
    	return (int)$temp1;
      }
    
    /***
     * Calculate the percentage of level done
     ***/
    function calcExpPercent($input)
    {
    	$temp1 = fmod($input,1000000);
    	$temp1 = ($temp1/1000000);
    	$temp1 = $temp1 * 100;
    
    	return (int)$temp1;
    }
    
    ?>
    

    sur le ftp j'ai ce fichier ainsi que mon image, probleme lorsque ce que je veux affiché l'image, elle s'achiffe mais vide sans texte..

    Quequ'un voit une solution?

    Merci



  • tu utilise la librairie GD de php qui permet de tripoter des images non??
    je sais pas si elle est active sur les serveurs freeheberg… j'en ai aussi besoin et c'est une question que je me pose aussi...

    normalement quand ton script est terminé tu écrase l'ancienne image par une nouvelle avec ton texte...
    regarde ton image en ftp voir deja si elle a été modifier par ton script...
    si ce n'est pas le cas, soit ton script est mauvais, soit la librairie GD n'est pas accessible.



  • @trust69:

    tu utilise la librairie GD de php qui permet de tripoter des images non??
    je sais pas si elle est active sur les serveurs freeheberg… j'en ai aussi besoin et c'est une question que je me pose aussi...

    normalement quand ton script est terminé tu écrase l'ancienne image par une nouvelle avec ton texte...
    regarde ton image en ftp voir deja si elle a été modifier par ton script...
    si ce n'est pas le cas, soit ton script est mauvais, soit la librairie GD n'est pas accessible.

    je pense que sa vient de la lib Gd car il a déja marché sur mon ancien serv



  • je suis du meme avis…



  • @trust69:

    je suis du meme avis…

    petite réponse venant de freeheberg:

    Bonjour,

    La librairie GD et GD2 sont activés sur l'ensemble des serveurs Freeheberg.

    Cordialement,
    Freeheberg.com

    donc je sais pas d'ou sa vient


  • Administrateur

    Le php info était out, je viens de le rétablir :
    Le phpinfo : http://ns10.freeheberg.com/test.php

    gd
    GD Support enabled
    GD Version bundled (2.0.34 compatible)
    FreeType Support enabled
    FreeType Linkage with freetype
    FreeType Version 2.3.4
    GIF Read Support enabled
    GIF Create Support enabled
    JPG Support enabled
    PNG Support enabled
    WBMP Support enabled
    XPM Support enabled
    XBM Support enabled



  • @caaptusss:

    Le php info était out, je viens de le rétablir :
    Le phpinfo : http://ns10.freeheberg.com/test.php

    gd
    GD Support enabled
    GD Version bundled (2.0.34 compatible)
    FreeType Support enabled
    FreeType Linkage with freetype
    FreeType Version 2.3.4
    GIF Read Support enabled
    GIF Create Support enabled
    JPG Support enabled
    PNG Support enabled
    WBMP Support enabled
    XPM Support enabled
    XBM Support enabled

    merci, je n'arrivais a les voir non plus…

    Bon je vais essayé de voir pour ce code et pourquoi cela ne marche pas, si quelqu'on a une idée je suis ouvert :)

    Merci



  • bon voila j'ai fixé le probleme :)



  • C'était quoi ?


Log in to reply