Bonjour à tous!
J'essaie de créer une page PHP qui lit un fichier spécifié, et en extrait dans des variables une partie du contenu du fichier.
Par exemple, le fichier contient titre: j'aime les frites, et le but est d'arriver à créer $titre="j'aime les frites" à partir du fichier.
Le problème? Si l'extraction du contenu paraît correcte, il y a en fait un problème: le contenu présente des caractères étranges.
La partie php:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | <?php //Cette fonction recherche dans un fichier la valeur d'une variable function getValue($property, $defaultValue, $lengthOfFile, $file) { $value=$defaultValue; //on initialise la valeur retournée for($i=0;$i<$lengthOfFile;$i++) //pour chaque ligne du fichier à compiler { $isValue=strpos($file[$i],$property); //FALSE si, dans la ligne actuelle, il n'y a pas de "property: " if(is_int($isValue)&&$isValue==0) //Si $isTitle est un entier et est égal à 0 (donc ni FALSE ni plus loin sur la ligne), on extrait la suite de la ligne comme étant la valeur de la propriété concernée de la page à créer { $value=substr($file[$i],strlen($property)); //$valeur égal à la portion de la ligne après $property } } return $value; } //Prend une chaîne de charactères et renvoie un nom de dossier function toFolder($title) { $title = strtolower($title); $title = urlencode($title); $title = str_replace("+","-",$title); $title = str_replace(" ","",$title); $title.="/"; return $title; } $nomDuFichier="page.page"; //bien entendu, l'obtention de $nomDuFichier se fera d'une manière différente, cette assignement se fait juste pur montrer le problème $file = file($nomDuFichier); $fileLength = count($file); echo("<p>L'array file: <br/>"); print_r($file); echo("</p>"); //extraction de la première variable $titreParDefaut="Titre non défini";//définition de la valeur de la variable 1 par défaut $titre=getValue("titre: ", $titreParDefaut, $fileLength, $file); //Définition du titre //extraction de la deuxième variable $langueParDefaut="";//définition de la langue par défaut $langue=getValue("langue: ", $langueParDefaut, $fileLength, $file); //Définition de la langue $titreAdresse = toFolder($titre); $langueAdresse = toFolder($langue); $chemin="../".$langueAdresse.$titreAdresse; echo("<p>Le chemin est: <br/>"); echo($chemin); echo("</p>") ?> |
Le fichier sur lequel le script php travaille:
1 2 | titre: j'aime les frites langue: francais |
Voilà ce que j'obtiens après l'execution du script : https://drive.google.com/file/d/0B3nZPoqzJdDJZkFUN09aR3piNWM/view
Merci de votre aide! En espérant ne pas avoir été trop long…
(J'ai essayé de changer l'encodage de UTF8 en ANSI mais ça change rien… )
+0
-0