Visualisation du fichier fiche_road_book.php

<DIV STYLE="overflow:auto; width: 100%; height: 300; padding:0px; margin: 0px">
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<?php
/*
Script permettant de générer un road-book en parsant un fichier XML.
*/
global $coul_case;
global 
$tab_remp;
$GLOBALS["coul_case"] = "#FFFFFF";
$GLOBALS["tab_remp"] = array("-UL-" => "<ul>""-EUL-" => "</ul>""-LI-" => "<li>""-ELI-" => "</li>""-B-" => "<b>""-EB-" => "</b>""-BR-" => "<br>");

$query_string getenv("QUERY_STRING");
$query_string substr($query_string,strpos($query_string'-')+1,strlen($query_string));
$env_array split("-"$query_string);
while (list(
$key$val) = each($env_array)) {
       list(
$name$value) = split("="$val);
      
$name urldecode($name);
    
$value urldecode($value);
    $
$name trim($value) ;
}

// Visiblement, mon parseur a qqs soucis quand il a une zone de texte avec des balises XML
// ça doit être le cas pour tous - Or, je veux formater mes descriptions d'étapes -> une fonciton
// qui permet de générer les balises HTML en fonction des pseudos que j'ai mis dans les descriptiosn s'impose
// Le pseudos balises sont : -B-, -EB-, -I-, -EI-, -UL-, -LI-, -EUL, -EIL-, -BR-
//------------------------------------------------------------------------------
function mise_en_forme($texte) {
    
// pour chaque balise que l'on peut remplancer (présente dans le tableau), on effectue le remplacement dans la chaîne
    //-------------------------------------------------------------------------------------------------------------------
    
$chaine $texte;
    foreach (
$GLOBALS["tab_remp"] as $key => $val) {
        
$chaine str_replace($key$val$chaine);
    }    
    
    return 
$chaine;
}


function 
startVille ($parser$name$attrs){
    switch (
$name) {
    case 
"VILLE":
        
// Une nouvelle ville, on choisit la bonne couleur et on fait une nouvelle ligne
        // Les paramètres sont : nom, distance, carte, camping, piste, descri.
        //--------------------------------------------------------------------
        
echo "\n <tr> \n\t <td bgcolor=\"".$GLOBALS["coul_case"]."\"> <b>".array_shift($attrs)."</b> (".array_shift($attrs)." km)";//     <img src=\"".array_shift($attrs)."\" alt=\"\"/>";
        
array_shift($attrs);
        if (
array_shift($attrs) == "yes") {    // camping
            
echo "    <img src=\"./img/camping.gif\" alt=\"\">";        
        }
        if (
array_shift($attrs) == "yes") {    // piste cyclble
            
echo "    <img src=\"./img/velo.jpg\" alt=\"\"/>";        
        }
        
// description
        
$is_descri array_shift($attrs);
        if (
$is_descri != "") {    
            
$is_descri mise_en_forme($is_descri);
            echo 
"<br><i>".$is_descri."</i>";        
        }
                
        
// Changement de couleur 
        //----------------------
        
if ($GLOBALS["coul_case"] == "#FFFFFF") {$GLOBALS["coul_case"]="#EEEEEE";}
        else {
$GLOBALS["coul_case"] = "#FFFFFF";}
        break;
    }
}

function 
endVille ($parser$name){//, $attrs){
    // ben rien en fait
    //-----------------
    
echo "\n\t </td> \n </tr>";        
}

function 
cdataVille ($parser$data_text){
    echo 
$data_text;    
}

function 
defautVille (){return true;}

$xmlFile file($fiche_road);
$xml_parseur xml_parser_create();

xml_set_element_handler($xml_parseur"startVille""endVille");
xml_set_character_data_handler($xml_parseur"cdataVille");
foreach(
$xmlFile as $elem
    {
xml_parse($xml_parseur$elem);}
?>
</table>