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>