Est il possible de mettre du php dans la fonction fopen?

WRInaute passionné
Bonjour,
Tout est dans le titre ^^.

Code:
<? php
.....
$copietxt = fopen("$champ.php","w+");
fputs ($copietxt, "
ICI UNE FONCTION PHP COMMENCENT ELLE MÊME PAR <? php Fonction sql+connection bd+tableau..etc ?>
");
fclose($copietxt);
....
?>
Est ce possible ?
Merci
 
WRInaute passionné
Si je pose la question c'est que j'ai déjà essayé :lol: et sans succès!
Je n'ai pas la prétention d'excéder dans le php et je fais beaucoup d'erreur ... d'où ma question.
 
WRInaute impliqué
Je ne comprend pas trop ce que tu demandes...

Tu peux écrire ce que tu veux dans un fichier, PHP se contrefiche du sens de ce que t'écris, que ça soit du C, du PHP ou du chinois il n'en a rien à faire...

Par contre effectivement il ne faut pas utiliser les guillemets doubles pour ta chaine, sinon PHP risque de vouloir interpréter ce qui passe.

Code:
fputs($fd, '<?php function bla($tralala) { return $tralala; }');
 
WRInaute passionné
Ben si le script s'execute dnas erreur de "compilation" mais ne fait pas ce que tu veux (ce qui semble etre le cas) c'est que la reponse a ta question est non :)
 
WRInaute passionné
Essaye comme ça:

Code:
<?php

$x = "";
$content = '<?php' . "function bla(\$x) { return \$x; } " .'?>';

$copietxt = fopen("champ.php","w");
fputs ($copietxt, $content);
fclose($copietxt);

?>
 
WRInaute passionné
Merci de vos réponses :D
FloBaoti a dit:
Je ne comprend pas trop ce que tu demandes...

En gros je veux que le code ci-dessous soit écrit grâce à la fonction fopen :
Code:
<?php

include("data_bd.php");

mysql_connect("$nom_du_serveur","$nom_utilisateur","$passe");
mysql_select_db("$nom_de_la_base") or die('Impossible de s&eacute;lectionner une base de donn&eacute;e. Assurez vous d\'avoir correctement remplit les donn&eacute;es du fichier data_bd.php.');

$query1 = mysql_query("SELECT * FROM $champ ");

$identete="";
$titre1="";
$description2="";
$url3="";

echo "<h1>Catégorie $champ</h1>";

//fonction pour générer le tableau
function switchcolor()
 { 
   static $col;
   $couleur1 = "#F0F9FE";
   $couleur2 = "#FFFFFF";

    if ($col == $couleur1)
     {
       $col = $couleur2;
     }
    else
     {
       $col = $couleur1;
     }
    return $col; 
 }

echo "<table style="width: 99%">";

while($affiche1 = mysql_fetch_array($query1))
{
$id = $affiche1['id'];
$identete.="$id";

$titre = $affiche1['titre'];
$titre1.="$titre";

$description = $affiche1['description'];
$description2.="$description";

$url = $affiche1['url'];
$url3.="$url";

echo "<tr bgcolor=""; echo switchcolor(); echo ""><td>";

echo ''.$titre.'<br/>';
echo ''.$description.'<br/>';
echo '<a href="'.$url.'">'.$titre.'</a><br/>';  

echo "</td></tr>";
      
}

echo "</table>";
?>
J'ai tout le temps des erreurs quand je tente cette manip. même en placent des slach avant les guillemets. N'y parvenant pas, je me pose alors la question "si c'est possible.." car si telle est le cas, l'erreur vient alors d'un soucis de syntaxe de ma part.
 
WRInaute impliqué
Ok donc c'est effectivement possible...

Il te faut entourer tout ton code par des guillements simples (sinon PHP essayera d'interpréter), et échapper les guillements simples dans le code.
 
WRInaute passionné
Merci FloBaoti :D ,sa fonctionne sauf que ... dans mon code j'ai une variable $champ transmise par POST. Du coup sa m'écrit $champ au lieu de la variable .. un peut dérangent ^^. Ya t'il moyen de contourner la chose ou une autre façon de faire?
Merci
 
WRInaute impliqué
Fait sortir ta variable de la chaine de caractère:

$chaine = 'ici ma chaine et ici: ' . $variable . ' ma variable';
 
Discussions similaires
Haut