• [^] # Voici mon code si ça vous dit qqch...

    Posté par . En réponse au message problème avec xml_parser_create(). Évalué à 0.

    <?

    if(!isset($_SESSION["langage"])){ $_SESSION['langage'] = "FR"; }

    function fct_traduc($str) {
    $file = "/translations.xml";
    $xml_parser = xml_parser_create();

    if (!($fp = fopen($file, "r"))) {
    die("could not open XML input");
    }

    $data = fread($fp, filesize($file));
    fclose($fp);
    xml_parse_into_struct($xml_parser, $data, $vals, $index);
    xml_parser_free($xml_parser);

    $params = array();
    $level = array();
    foreach ($vals as $xml_elem) {
    if ($xml_elem['type'] == 'open') {
    if (array_key_exists('attributes',$xml_elem)) {
    list($level[$xml_elem['level']],$extra) = array_values($xml_elem['attributes']);
    } else {
    $level[$xml_elem['level']] = $xml_elem['tag'];
    }
    }
    if ($xml_elem['type'] == 'complete') {
    $start_level = 1;
    $php_stmt = '$params';
    while($start_level < $xml_elem['level']) {
    $php_stmt .= '[$level['.$start_level.']]';
    $start_level++;
    }
    $php_stmt .= '[$xml_elem[\'tag\']] = $xml_elem[\'value\'];';
    eval($php_stmt);
    }
    }
    print($params ['TRANSLATIONS'][$str][$_SESSION['langage']]);
    }
    ?>