Probleme pour écrire dans un fichier avec la fonction fwrite - PHP - Programmation
Marsh Posté le 26-02-2007 à 16:31:04
fwrite prend un identifiant de ressource (le truc retourné par fopen), pas un nom de fichier.
Marsh Posté le 26-02-2007 à 18:03:22
ReplyMarsh Posté le 26-02-2007 à 18:18:39
mais lis la doc s'tout expliqué
http://fr.php.net/fwrite:
Code :
|
Marsh Posté le 26-02-2007 à 18:20:32
En effet, merci de ton aide anapajari
Finalement c'était bien de la forme fwrite( $fichier , $data );
Marsh Posté le 27-02-2007 à 09:28:01
Et avant de finir ce post, j'aurai une toute petite question.
J'aurai voulu savoir comment faire pour vérifier si un fichier image porte bien une extension correcte, ou porte bien une extention tout court
Par exemple si
$nom_image == imagetest => Erreur/Sortir
$nom_image == imagetest.blabla => Erreur//Sortir
$nom_image == imagetest.jpg => OK/Continuer
Pour la syntaxe, j'ai pensé a des choses comme
Citation : if( $nom_image !== %"."% ) |
mais evidément ça serai trop beau si ça pouvais marcher
(je ne sais pas si j'ai été bien clair )
Marsh Posté le 27-02-2007 à 09:43:39
tu peux utiliser pathinfo, ou bien des fonction sur les chaines.
Par exemple avec strrchr et substr, tu peux y arrivé.
Cherche un peu
Marsh Posté le 27-02-2007 à 10:00:22
(Ne pas se fier qu'à l'extension pour juger du type d'un fichier, ceci dit...)
Marsh Posté le 27-02-2007 à 10:03:20
sielfried a écrit : (Ne pas se fier qu'à l'extension pour juger du type d'un fichier, ceci dit...) |
( pas dit le contraire ... )
Marsh Posté le 27-02-2007 à 10:12:17
anapajari a écrit : ( pas dit le contraire ... ) |
(pas dit que t'avais dit le contraire... )
Marsh Posté le 27-02-2007 à 10:19:54
anapajari a écrit : tu splittes sur le caractère point et tu prends le dernier element du tableau, hop ça te donne l'extension. |
Merci a anapajari pour ton aide, mais pourrais-tu un tout petit peu développer ?
Je suis encore bien trop novice en PHP.
Merci aussi aux autres pour leur aide.
Marsh Posté le 27-02-2007 à 10:38:46
lespagnol9393 a écrit : Merci a anapajari pour ton aide, mais pourrais-tu un tout petit peu développer ? |
Que voudrais tu que je developpe? Je t'ai filé le lien vers la page de la doc où il y a un exemple, je t'ai dit comment l'utiliser... Je vois pas trop ce que je peux faire de plus!
Te donner le code tout fait?
lespagnol9393 a écrit : Je suis encore bien trop novice en PHP. |
j'aurais pas dit novice ...
Marsh Posté le 27-02-2007 à 10:55:21
Au fait, si y a pas besoin d'expressions régulières comme ici, utiliser plutôt explode qui est plus rapide.
Les exemples sont encore plus simples d'ailleurs :
http://fr.php.net/manual/fr/function.explode.php
Si avec ça tu piges pas...
Marsh Posté le 27-02-2007 à 10:57:23
Merci vous deux pour votre patience.
Je vais jeter un coup d'oeil sur ce pti lien.
Marsh Posté le 27-02-2007 à 13:06:23
Impeccable, tout marche impecc....
Merci bien a vous et bonne continuation sur le forum
Marsh Posté le 27-02-2007 à 14:39:11
Si je peux aussi me permettre de vous solliciter encore une fois, je me trouve devant un autre probleme.
J'aimerai pouvoir ajouter du code html dans une page, mais à une ligne bien précise.
J'ai chercher un peu partout et j'ai trouvé ça, mais là encore, je n'arrive pas a m'en sortir...
Citation : # Accès direct |
Merci de votre aide une fois de plus
Marsh Posté le 27-02-2007 à 18:28:58
Ta "ligne bien précise", c'est genre "la ligne 28" ou plutôt "la ligne qui contient 'truc'" ?
Marsh Posté le 27-02-2007 à 18:46:06
Au plus simple, tu vides ton fichier et tu le remplis avec son nouveau contenu!
Marsh Posté le 27-02-2007 à 20:06:00
sielfried a écrit : Ta "ligne bien précise", c'est genre "la ligne 28" ou plutôt "la ligne qui contient 'truc'" ? |
C'est plutot la ligne numéro 28. C'est un numéro de ligne que je recherche.
Ou pour etre encoreplus précis, 5 lignes avant la fin de fichier.
Marsh Posté le 27-02-2007 à 20:07:42
anapajari a écrit : Au plus simple, tu vides ton fichier et tu le remplis avec son nouveau contenu! |
C'est plutot délicat, car je ne sais pas comment je pourrai me débrouiller pour recopier l'ancien code, inserer le nouveau code qques lignes avant la fin de fichier, et recopier la fin de l'ancien code.
ça me parait plus compliké que la solution d'inserer directement le code dans la page initiale, non ?
Marsh Posté le 28-02-2007 à 08:06:17
Pour etre plus clair, le nouveau code doit s'integrer dans une <table></table> deja existante dans la page html.
Or si ce code s'insere à la fin du fichier, il ne sera pas compris dans la table, étant donné que la balise de fin </table> aura déja été fermée.
J'ai été clair ?
Marsh Posté le 28-02-2007 à 09:09:05
non tu récupères tout ton fichier danbs une string, tu utilises les fonctions sur les chaines pour trouver l'endroit, tu rajoutes du texte et tu sauves tout ça en ré-écrivant ton fichier
Marsh Posté le 28-02-2007 à 09:30:12
Merci pour ta réponse. Je pense creuser de ce coté là alors
Par contre tu me conseilles d'utiliser les chaines, mais je dois récuperer un numéro de ligne, et non pas une suite de caracteres, pour inserer mon code au bon endroit.
Marsh Posté le 28-02-2007 à 09:34:41
Code :
|
Marsh Posté le 28-02-2007 à 09:36:45
Whaaa... C'est gentil ça
Et si maintenant je souhaite inserer mon code, non pas à la ligne 28 (par exemple), mais à 5 lignes de la fin du fichier (encore par exemple) ?
Aurais-tu une idée ?
Marsh Posté le 28-02-2007 à 09:47:41
Si tu sais comment calculer la taille de tableau, tu sais répondre à ça... et j'espère bien que tu sais.
Marsh Posté le 28-02-2007 à 09:50:05
plutot que de te baser sur les numeros de lignes, je te conseillerais de t'inspirer des systeme de template en mettant dans ta page html une "balise" te permettant de rapidement identifier l'endroit ou ajouter le texte.
Et si tu as peur que cela apparaisse , suffit de le mettre en commentaire html, quelque chose comme:
Code :
|
ensuite tu n'as plus qu'a faire un str_replace
Marsh Posté le 28-02-2007 à 09:55:05
Ah ben ouais, si tu peux faire ça c'est mieux.
Marsh Posté le 28-02-2007 à 09:58:48
Quand tu parles de "balise", tu veux dire "ancre" ?
Edit: Haaaa je crois avoir compris ton idée !
La page html qui va recevoir la portion de code est en fait une liste de pièces de magasin.
Donc un autre probleme va se poser :
Si je modifie la balise comme tu le dis, ça marchera pour la première pièce ajoutée a la page, mais non pas pour les suivantes, tu comprends ?
C'est pour ça que dans le meilleur des cas, il aurait été génial de rajouter le code, soit par exemple à 5 lignes de la fin du fichier, histoire de se placer avant la balise </table>, ou soit directement une ligne avant </table>
Marsh Posté le 26-02-2007 à 14:40:20
Bonjour à tous.
Je voudrai lister le contenu d'un repertoire local. Ce repertoire est un dossier (presentation_amc/Pieces/) contenant plein de fichiers *.jpg.
Pour cela, je ne semble pas avoir trop de soucis, ça marche
Et je voudrai écrire dans un fichier (administration_base/liste_image.txt) le résultat de cette commande. Et là ça coince...
L'erreur retournée est:
Warning: fwrite(): supplied argument is not a valid stream resource in c:\program files\easyphp1-8\www\site\accueil_general\presentation_amc\administration_base\add.php on line 136
Voici la portion de mon code PHP:
124 $file_image = "liste_image.txt" ;
125 $fichier = fopen($file_image,"a" ) ;
126 $fichier_a_modif = "liste_image.txt" ;
127 $data = $file_image.'<br>test<br>' ;
128
129 if ($handle = opendir("../Pieces/" ))
130 {
131 while (false !== ($file_image = readdir($handle)))
132 {
133 if ($file_image != "." && $file_image != ".." )
134 {
135 echo $file_image." / " ;
136 fwrite( $file_image, $data );
137 }
138 }
139 }
140 fclose($fichier);
Si quelqu'un pouvais m'apporter un peu de ces connaissances, je lui en serait reconnaissant
Merci !
Message édité par lespagnol9393 le 26-02-2007 à 14:49:43
---------------
Mon FeedBack