Problème avec les apostrophes

Problème avec les apostrophes - PHP - Programmation

Marsh Posté le 16-10-2013 à 08:14:41    

Bonjour à toutes et à tous.
 
Avant tout je dois préciser que je ne suis pas programmeur, juste un internaute lambda, néophyte.
 
Mon problème est le suivant :
 
pour notre famille j’ai mis en place une galerie d’images et les légendes de celles-ci posent problème.
Dès qu’il y a une apostrophe, celle-ci ne s’affiche pas et le texte qui suit disparaît.
 
C’est ce bout de script qui permet d’afficher la légende :

Code :
  1. // 2. LOAD CAPTIONS
  2. if (file_exists($currentdir ."/captions.txt" ))
  3. {
  4. $file_handle = fopen($currentdir ."/captions.txt", "rb" );
  5. while (!feof($file_handle) )
  6. {
  7.  $line_of_text = fgets($file_handle);
  8.  $parts = explode('/n', $line_of_text);
  9.  foreach($parts as $img_capts)
  10.  {
  11.   list($img_filename, $img_caption) = explode('|', $img_capts);
  12.   $img_captions[$img_filename] = $img_caption;
  13.  }
  14. }
  15. fclose($file_handle);
  16. }


 
Le fichier externe dans lequel est écrit la légende est structuré ainsi :

Code :
  1. assemblee-nationale.jpg|Les députés dans l'hémicycle de l'Assemblée nationale


 
Et là se trouve le problème. Le texte se voit tronqué ; la légende affichée est :

Citation :

Les députés dans l


 
N’étant pas compétent je me demandais si vous pouviez m’aider.
Merci d’avance pour vos réponses.
 
André

Reply

Marsh Posté le 16-10-2013 à 08:14:41   

Reply

Marsh Posté le 16-10-2013 à 11:02:56    

Ton bout de code m'a l'air d'avoir été codé avec les pieds  :pfff:  
Ligne 4 : bizarre d'ouvrir en mode binaire un fichier txt... :/
Ligne 8, ça serait pas plutôt '\n' :??:
 
Par ailleurs, ton format de fichier txt ressemble fort à du CSV avec comme séparateur, le '|'. Je recommande l'utilisation de la fonction fgetcsv() ( http://www.php.net/manual/fr/function.fgetcsv.php ) pour lire ton fichier, ça t'évitera un autre pb que les apostrophe : des légendes qui contiennent un retour-chariot :o
 
Pour ton pb, cherches la partie du script qui affiche le contenu de $img_captions[...] et tentes un addslashes($img_captions[...]). C'est pour échapper le caractère '... Tu peux aussi essayes htmlspecialchars($img_captions[...]). Sans plus de précision, difficile de t'aider plus...
 


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 16-10-2013 à 12:13:17    

Bon.
Merci pour la réponse.
Je vais mettre les doigts dans le code.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed