Quand le serveur que j'utilise le veut bien, je sais uploader un fichier texte sur mon serveur.
(Easyphp sous Windows XP, c'est OK. PHP sous Linux, je ne dois pas avoir les bons droits, mon upload est refusé).
Supposons ce détail résolu pour Linux...
Une fois mon fichier texte déposé dans un répertoire nommé "entree", je veux l'ouvrir en lecture, et interpréter ligne par ligne son contenu pour écrire un autre fichier, à déposer dans un répertoire nommé "sortie".
J'ai une idée assez précise des traitements à effectuer pour fabriquer le nouveau contenu.
Le problème, c'est cette série de messages d'erreur :
Warning: fopen(entree/test1.txt): failed to open stream: No error in c:\program files\easyphp1-7\www\creation_sortie.php on line 21
Warning: fopen(sortie/test2.txt): failed to open stream: No error in c:\program files\easyphp1-7\www\creation_sortie.php on line 22
Warning: fwrite(): supplied argument is not a valid stream resource in c:\program files\easyphp1-7\www\creation_sortie.php on line 24
Warning: fwrite(): supplied argument is not a valid stream resource in c:\program files\easyphp1-7\www\creation_sortie.php on line 25
Warning: feof(): supplied argument is not a valid stream resource in c:\program files\easyphp1-7\www\creation_sortie.php on line 27
Fatal error: Call to undefined function: fget() in c:\program files\easyphp1-7\www\creation_sortie.php on line 29
1 - Le programme ne sait pas trouver mon fichier existant test1.txt
2 - Il est embêté par test2.txt qui n'existe pas encore (mais je pense que la raison est la même en fait).
3 - Il fait référence à un chemin c:\program files\easyphp1-7\www\creation_sortie.php alors que j'aurais plutôt attendu un chemin par rapport à la racine du site web. Je suis supposé être sur un serveur web, non ?
4 - Evidemment, entree\test1.txt ne marche, le chemin complet non plus, et test1.txt dans le même répertoire que creation_sortie.php pas davantage.
(5 - Euh !... Stream resource, quelqu'un peut me rappeler qu'est-ce que ce que ça que c'est ?)
Je simplifie le code :
----------------------
$fichier_txt = "test1.txt"; // Et en cas de sous-répertoire ???
$fichier_ini = "test2.txt";
$fichier_entree = fopen($fichier_txt, "R" );
$fichier_sortie = fopen($fichier_ini, "W" );
$ligne_numero = 0;
while (!feof($fichier_entree)) {
$ligne_numero++;
$entree = fget($fichier_entree,1000);
$sortie = $entree." = ".$ligne_numero;
fwrite($fichier_sortie, $sortie);
}
fclose($fichier_entree);
fclose($fichier_sortie);
Il peut manquer une instruction pour séparer les lignes dans le fichier de sortie, peut-être ? C'est un détail.
Le problème c'est que test1.txt n'est pas trouvé, alors que le programme d'upload l'a déposé sur le serveur.