Dans un premier temps, bonjour à tous.
Si je décide de poster dans votre forum aujourd'hui, c'est pour un problème plutôt récurent, un caractère invisible qui vient se placer à la fin d'une variable lors d'une incrémentation++;
Je vais détailler du mieux possible mon problème et les tests que j'ai effectué via l'aide d'une autre communauté, ou de moi même.
Le code :
Infos :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" > <head> <title>Index.</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <?php $monfichier = fopen('compt.txt', 'r+'); $pages_vues = fgets($monfichier); $pages_vues++; fseek($monfichier, 0); fputs($monfichier, $pages_vues); fclose($monfichier); echo'<p>Cette page a été vue ' . $pages_vues . ' fois !</p>; ?> </body> </html>
Os : Linux Ubuntu 9.10 karmic.
Navigateur : FireFox 3.5.8.
Environnement de dev : Xampp.
Version de php : 5.3.1.
-----------------------
Apparition du bug : uniquement avec l'incrémentation de forme $pages_vues++;
Other : Les formes $pages_vues+=1; $pages_vues = $pages_vues + 1; fonctionnent.
var_dump($pages_vues) : (avec le fichier texte initialisé à 0) Retourne cela : string(2) "0 "
Fichier texte initialisé à 0 via : (je n'ai pas touché à l'encodage de ces éditeurs de textes) gEdit, gVim, jEdit.
J'ai remarqué que, si j'écrivais dans le fichier .txt via un script php, l'incrémentation de forme $pages_vues++; fonctionnait sans poser de problèmes.
En ayant parcouru votre forum, je suis tombé sur la fonction ord pour identifier le caractere mystérieux, je n'ai pas su l'adapter (je débute en php depuis quelques jours).
Je joints mes deux fichiers sous un unique zip, si jamais vous voulez voir l'encodage du fichier par exemple.
En espérant avoir des infos pour résoudre ce facheux probleme.
Partager