Sortie d'un fichier en PHP

Résolu/Fermé
Poireau007 Messages postés 83 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 17 octobre 2012 - 15 avril 2009 à 15:07
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 - 16 avril 2009 à 22:11
Bonjour à tous,

Bon j'ai une question de débutant , désolé !

J'ai écrit un script en php se lance correctement et ma'affiche ce que je souhaite, mais je souhaiterais que le resultat s'écrive dans un fichier texte.

En bash c'est facile, je je fait :

sed.... >monfichier.txt

mais en php je ne sais pas faire !

merci de votre aide.
A voir également:

7 réponses

il suffit de regarder la doc : https://www.php.net/manual/en/function.fopen.php

'r' Ouvre en lecture seule, et place le pointeur de fichier au début du fichier.

'r+' Ouvre en lecture et écriture, et place le pointeur de fichier au début du fichier.

'w' Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.

'w+' Ouvre en lecture et écriture ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0. Si le fichier n'existe pas, on tente de le créer.

'a' Ouvre en écriture seule ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.

'a+' Ouvre en lecture et écriture ; place le pointeur de fichier à la fin du fichier. Si le fichier n'existe pas, on tente de le créer.

'x' Crée et ouvre le fichier en lecture seule ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Ce mode est l'équivalent des options O_EXCL|O_CREAT pour l'appel système open(2) sous-jacent. Cette option est supportée à partir de PHP 4.3.2 et fonctionne uniquement avec des fichiers locaux.

'x+' Crée et ouvre le fichier en lecture et écriture ; place le pointeur de fichier au début du fichier. Si le fichier existe déjà, fopen() va échouer, en retournant FALSE et en générant une erreur de niveau E_WARNING. Si le fichier n'existe pas, fopen() tente de le créer. Ce mode est l'équivalent des options O_EXCL|O_CREAT pour l'appel système open(2) sous-jacent. Cette option est supportée à partir de PHP 4.3.2, et fonctionne uniquement avec des fichiers locaux.
1
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
15 avril 2009 à 15:09
regardes la fonction "fopen", fputs; fclose ....
0
freto Messages postés 1542 Date d'inscription vendredi 6 juillet 2007 Statut Membre Dernière intervention 8 avril 2016 161
15 avril 2009 à 15:13
Salut.
Dans ton fichier php, au lieu de mettre des echos, il faut utiliser des fonctions telles que fopen, fwrite, et fclose.

Voici un petit exemple:

//ouverture en lecture et modification

        //ouverture en écriture
        $text2=fopen($fichier,'w+') or die("Fichier manquant");
        //il faut ici remplir la chaine $contenuMod pour y mettre ce qu'on veut
        fwrite($text2,$contenuMod);
        fclose($text2);


Sinon, il m'a semblé lire quelque part sur le net que l'on pouvait exécuter du PHP comme un script bash, mais la je connais pas plus que sa désolé.
0
bonjour,

tu peux le faire comme ça :

$file = fopen($path,$droits);
		fwrite($file,$contenu);
		fclose($file);


voilà la doc :

https://www.php.net/manual/en/function.fopen.php
https://www.php.net/manual/fr/function.fwrite.php
https://www.php.net/manual/fr/function.fclose.php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Poireau007 Messages postés 83 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 17 octobre 2012 15
15 avril 2009 à 17:04
Avant tout , merci à tous pour vos réponses :)

Bon ça m'a pas l'air simple cette affaire...

voici mon script en version simplifiée :

<?php
// Parametres mysql
define('DB_SERVER', 'localhost'); // serveur mysql
define('DB_SERVER_USERNAME', 'root'); // nom d'utilisateur
define('DB_SERVER_PASSWORD', ''); // mot de passe
define('DB_DATABASE', 'basededonnee'); // nom de la base

// Connexion au serveur mysql
$connect = mysql_connect(DB_SERVER, DB_SERVER_USERNAME,
DB_SERVER_PASSWORD)
or die('Impossible de se connecter : ' . mysql_error());

// sélection de la base de données
mysql_select_db(DB_DATABASE, $connect);

$id= 100200300;
$reponse = mysql_query("SELECT * FROM tb WHERE idx=$id ");

while ($donnees = mysql_fetch_array($reponse))
{
?>


<?php echo $donnees['expres']; ?>
<?php echo "\t" ?><br>


<?php
}
mysql_close();
?>



Bon ça marche , ça m'affiche ce que je veux , c'est cool.
Pour sortir ca en un fichier fichier.txt,
en suivant le process de freto je remplace :


<?php echo $donnees['expres']; ?>
<?php echo "\t" ?><br>


par



//ouverture en lecture et modification

        //ouverture en écriture
        $text2=fopen($fichier,'w+') or die("Fichier manquant");
        //il faut ici remplir la chaine $contenuMod pour y mettre ce qu'on veut
        fwrite($text2,$donnees['expres']);
        fclose($text2);


Ca me dit "fichier manquant" ...
a quoi correspond $text2 ? si je fais quelque chose du type text2=$donnees['expres'] c'est correct ??
Désolé pour ma noobitude !
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
15 avril 2009 à 17:08
$fichier = "fichier_de_log.txt";
$text2 c'est le handle du fichier que tu as ouvert avec fopen
0
Poireau007 Messages postés 83 Date d'inscription jeudi 5 février 2009 Statut Membre Dernière intervention 17 octobre 2012 15
16 avril 2009 à 18:23
Merci encore pour vos réponses !
malheureusement elles restent relativement abconses...

merci pour le lien du site mais je n'ai rien compris :/

un extrait :

"Si PHP a décidé que filename spécifie un protocole enregistré, et que ce protocole est enregistré comme un protocole réseau, PHP s'assurera que la directive allow_url_fopen est activée. Si elle est inactive, PHP va émettre une alerte et l'ouverture va échouer."

Hum hum, c'est en quelle langue ça ??

Bon sinon on m'a donné un coup de main pour y arriver donc je poste, ça pourra toujours servir a quequ'un =)

ça donne :

$fp=fopen( 'out.log', 'w');
fwrite( $fp, liste_de_mes-INSTRUCTIONS ) ;
fclose( $fp );

voilou
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
16 avril 2009 à 22:11
en fait, ce que tu ne comprennais pas, tu l'aurai compris en feuillettant un peu plus le site
on te parlait de la possibilité d'ouvrir un fichier de la meme manière qu'un protocole réseau: de la meme manière que tu peux ouvrir avec cette fonction un fichier accessible via une adresse commenceant par http:// ou https:// ou encore ftp://, tu peux mettre php:// pour ouvrir un fichier ...

de meme, a la suite de la page, tu serai tombé sur ceci:
Voir aussi

Liste des protocoles supportés
fclose() - Ferme un fichier
fgets() - Récupère la ligne courante sur laquelle se trouve le pointeur du fichier
fread() - Lecture du fichier en mode binaire
fwrite() - Écrit un fichier en mode binaire
fsockopen() - Ouvre une socket de connexion Internet ou Unix
file() - Lit le fichier et renvoie le résultat dans un tableau
file_exists() - Vérifie si un fichier ou un dossier existe
is_readable() - Indique si un fichier est accessible en lecture
stream_set_timeout() - Configure la durée d'expiration d'un flux
popen() - Crée un processus de pointeur de fichier
stream_context_create() - Crée un contexte de flux

qui était des liens vers toutes les methode en relation avec le fopen ... donc le lien était particulièrement utile... si tu avais prété un peu plus attention au contenu de la page ...
0