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

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


tryan
WRInaute accro
WRInaute accro
 
Messages: 1543
Inscription: Dim Fév 20, 2005 14:14

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

Message le Sam Mar 15, 2008 11:11

Bonjour,
Tout est dans le titre ^^.

Code: Tout sélectionner
<? 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


moktoipas
WRInaute accro
WRInaute accro
 
Messages: 2323
Inscription: Mar Juin 29, 2004 11:52

Message le Sam Mar 15, 2008 11:32

Pourquoi tu essaye pas ?

Ca serai allé bien plus vite que faire un topic !


tryan
WRInaute accro
WRInaute accro
 
Messages: 1543
Inscription: Dim Fév 20, 2005 14:14

Message le Sam Mar 15, 2008 11:50

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.

FloBaoti
WRInaute passionné
WRInaute passionné
 
Messages: 684
Inscription: Dim Avr 30, 2006 18:42

Message le Sam Mar 15, 2008 11:53

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: Tout sélectionner
fputs($fd, '<?php function bla($tralala) { return $tralala; }');
Dernière édition par FloBaoti le Sam Mar 15, 2008 12:03, édité 1 fois.


moktoipas
WRInaute accro
WRInaute accro
 
Messages: 2323
Inscription: Mar Juin 29, 2004 11:52

Message le Sam Mar 15, 2008 11:58

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 :)


Jeviensderio
WRInaute accro
WRInaute accro
 
Messages: 1340
Inscription: Ven Sep 29, 2006 12:50

Message le Sam Mar 15, 2008 12:14

Essaye comme ça:

Code: Tout sélectionner
<?php

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

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

?>


tryan
WRInaute accro
WRInaute accro
 
Messages: 1543
Inscription: Dim Fév 20, 2005 14:14

Message le Sam Mar 15, 2008 13:34

Merci de vos réponses :D
FloBaoti a écrit: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: Tout sélectionner
<?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.

FloBaoti
WRInaute passionné
WRInaute passionné
 
Messages: 684
Inscription: Dim Avr 30, 2006 18:42

Message le Sam Mar 15, 2008 14:15

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.


tryan
WRInaute accro
WRInaute accro
 
Messages: 1543
Inscription: Dim Fév 20, 2005 14:14

Message le Sam Mar 15, 2008 16:10

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

FloBaoti
WRInaute passionné
WRInaute passionné
 
Messages: 684
Inscription: Dim Avr 30, 2006 18:42

Message le Sam Mar 15, 2008 17:15

Fait sortir ta variable de la chaine de caractère:

$chaine = 'ici ma chaine et ici: ' . $variable . ' ma variable';


tryan
WRInaute accro
WRInaute accro
 
Messages: 1543
Inscription: Dim Fév 20, 2005 14:14

Message le Sam Mar 15, 2008 17:22

Milles merci FloBaoti :D , je me traine la dessus depuis ce matin...
Merci, merci, merci

FloBaoti
WRInaute passionné
WRInaute passionné
 
Messages: 684
Inscription: Dim Avr 30, 2006 18:42

Message le Sam Mar 15, 2008 17:29

Avec plaisir :wink:


spout
WRInaute accro
WRInaute accro
 
Messages: 1320
Inscription: Mer Mai 14, 2003 11:05

Message le Sam Mar 15, 2008 23:20

Il y a aussi la fonction eval() qui peut permettre de faire ça
http://fr.php.net/manual/fr/function.eval.php


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: sim100 et 0 invités