Page 1 sur 1

Interpretation php dans fwrite

Posté : 19 juin 2008, 10:00
par psgkiki
Bonjour a tous,

Je voudrais créer un fichier HTM à partir d'un script PHP à l'aide de la fonction fopen et fwrite.

voici la structure de mon script
<?php
//ouverture fichier
fwrite($open,'<HTML><Body>.......<h1>

et là je veux mettre un bout de code PHP.

</h1>
....
</html>');

?>
Comment faire pour interpreter le code PHP dans le fwrite ?

J'ai essayé en faisant ceci :
fwrite($open,'......'echo .... '......'); 
mais ca ne marche pas

Ca doit être une histoire de parenthèsage, cote, double cote mais je ne vois pas.

Merci


Cordialement

Posté : 19 juin 2008, 10:19
par Berzemus
Non, c'est clair que ça ne peut pas marcher. C'est logique.

Qu'est-ce que tu cherches à faire ?

A placer le résultat de quelque chose dans ta page ?

A placer du code dans ta page ?

C'est pas très explicite.. sans parler que ce que tu mets la fait trembler les fondements du php, donc ce serait bien de se replonger dans une relecture des bases du langage.


Dans le premier cas, plutôt quelque chose comme ceci:
$contenu = 'Wéééé, je fais du php!!';
fwrite($open,'brlkbrlk' . $contenu . 'fpoerj ze');
Et dans le second
$contenu = "<?php echo \"Je refais du php!!\"?>";
fwrite($open,'brlkbrlk' . $contenu . 'fpoerj ze');
(mais la il te faudra t'assurer que le php sera interprété)

Posté : 19 juin 2008, 10:30
par psgkiki
Merci c'est bon ca marche.

Désolé de n'avoir pas ton niveau mais je pense que le forums sont faits pour apprendre.

Nan ?

En tout cas merci

Cordialement

Posté : 19 juin 2008, 10:55
par katagoto
Y a une fonction simple pour faire ça :
function write_file($file, $mode, $text) {
	if ($fp = fopen($file, $mode)) {
		if (is_array($text)) {
			foreach ($text as $t) {
				fwrite($fp, rtrim($t));
				fwrite($fp, "\r\n");
			}
		}
		else {
			fwrite($fp, $text);
			fwrite($fp, "\r\n");
		}
		fclose($fp);
		return true;
	}
	else return false;
}
Qui s'utilise comme ça :
$texte=array();
$texte[]='<?php';
$texte[]='echo "salu";';
// etc.

write_file("fichier.php", "w", $texte);

Posté : 19 juin 2008, 11:12
par Berzemus
Désolé de n'avoir pas ton niveau mais je pense que le forums sont faits pour apprendre.
Pour aider à apprendre, ce n'est pas de l'enseignement non plus :wink:.

Heureux d'avoir pu t'aider. :)

Posté : 19 juin 2008, 11:44
par Sékiltoyai
katagoto, c'est normal que j'aie l'impression que ta fonction est totalement inutile ?

Posté : 19 juin 2008, 12:18
par katagoto
Non, c'est quand même vâchement plus simple que de faire ça "manuellement"

Posté : 19 juin 2008, 12:51
par Sékiltoyai
fwrite($handle, implode("\n", $ary));
En effet, c'est très compliqué manuellement…

Et je ne vois surtout pas l'utilité d'un tableau…

Posté : 19 juin 2008, 13:21
par katagoto
J'ai l'habitude de faire comme ça, en quoi une chaine qui fait
$chaine="<?php echo 'salut', if($me == $i) { echo '1 2 3'; }";
Est plus facile qu'un tableau (série de ligne) ?

Posté : 19 juin 2008, 14:06
par albat
$chaine="<?php echo 'salut', if($me == $i) { echo '1 2 3'; }";
Avant même de te répondre, j'ai juste regardé ta syntaxe, et ... :afraid:

Posté : 19 juin 2008, 15:37
par katagoto
Oui, c'est un exemple tapé à la vas-vite... histoire d'illustrer mes propos :roll: