le contenu d'un "require" dans une variable

Eléphant du PHP | 120 Messages

28 août 2009, 15:46

bonjour,

pour envoyer un email, j'utilise un script de ce genre :
				$sujet="Titre du Mail";

				// mail HTML :
				$headers .='Content-Type: text/html; charset="iso-8859-1"'."\n";
				$headers .='Content-Transfer-Encoding: 8bit';
				
				// si on repond au mail recu ca partira ici :
				$headers .= "Reply-to: \"toto\" <[email protected]>\n";
				// si on veut savoir qui a envoy&eacute; ce mail :
				$headers .= "From: \"toto\" <[email protected]>\n";
				// on envoi une copie de ce meme mail là :
				$headers .= "Bcc: \"toto\" <[email protected]>\n";
				
// debut du message HTML				
				$message='
							<br><br>&nbsp;&nbsp;&nbsp;
							
							Si vous n\'arrivez pas à lire ce message correctement, merci de copier-coller cette adresse dans votre navigateur
							
							http://www.toto.com/2009/invitations/invitation.php?id='.$id.' 
							
							ou de 
							<a href="http://www.toto.com/2009/invitations/invitation.php?id='.$id.'">
							cliquez ici !
							</a>
							<br><br><br>
							
							
		require('../includes/invitation_'.$langue.'.php');
					
					
								';

forcement ce code ne marche pas à cause de l'include, enfin plutot la fonction require.
Mais pour des raisons de commodités, et parce que ce code est utilisé à plusieurs endroits, j'ai voulu l'isoler.

la page appelée dans le require n'est autre qu'un code HTML du type

<html>
<head>
<title>toto</title>
etc...

comment puis-je passer le contenu de la page DANS la variable $message ?

Je pense pas que ce soit extraordinaire, mais j'avoue ne pas savoir comment m'y prendre

merci pour votre aide

jp
si tu as un soucis en informatique, dis toi bien que quelqu'un d'autre l'a eu avant toi

Eléphant du PHP | 369 Messages

28 août 2009, 17:24

Salut,
bonjour,
pour envoyer un email, j'utilise un script de ce genre :
[...]
forcement ce code ne marche pas à cause de l'include, enfin plutot la fonction require.
Mais pour des raisons de commodités, et parce que ce code est utilisé à plusieurs endroits, j'ai voulu l'isoler.
la page appelée dans le require n'est autre qu'un code HTML du type
[...]
comment puis-je passer le contenu de la page DANS la variable $message ?
Je pense pas que ce soit extraordinaire, mais j'avoue ne pas savoir comment m'y prendre
merci pour votre aide
jp
include/require etc... Charge un fichier en l'évaluant (...le terme est peut-être mal choisi)
autrement dit: utiliser fopen à la place pour des fichiers non php. Exemple:
<?php

$fp = fopen("ton_fichier", "r");
if ($fp === false) exit("Traitement imposssible !");

$line = "";

while(!feof($fp)
{
   $line .= fget($fp, 1024);
}
Ta_fonction php($line);
?>
Sinon ton fichier HTML tu fais ca si tu tiens vraiment à include/require/ect...:
<?php
   function html()
   {
      $html .= "<html>\n";
      $html .= "   <head>\n";
      $html .= "   .\n";
      $html .= "   Etc...\n";
      $html .= "   .\n";
      $html .= "</html>\n";

      return $html;
   }
?>
Espérant que ca solutionne ton problème, bon code @+ ;)

Invité
Invité n'ayant pas de compte PHPfrance

28 août 2009, 17:42

euh...
excuse moi mais le probleme n'est pas là...

j'aimerai ajouter le contenu du require au contenu de la variable $message.

j'aimerai que $message = 'un bout de code'+'le bout de code dans le require' = la concaténation des deux en fait...

c'est tout...

Eléphant du PHP | 369 Messages

28 août 2009, 18:19

euh...
excuse moi mais le probleme n'est pas là...
j'aimerai ajouter le contenu du require au contenu de la variable $message.
j'aimerai que $message = 'un bout de code'+'le bout de code dans le require' = la concaténation des deux en fait...
c'est tout...
Je t'en prie, no soucis ;)

Je crois voir... 'fin il me semble. Tu souhaites avoir un code prêt à l'emploi
dans une ou plusieur variables et par la suite les évaluer.
Si c'est ca, la fonction eval y répond mais dangereuse en ressource.

...de toute façon tu ne pourras "cat" tes bouts de code qu'en transposant en chaine tous
tes autres bouts de code (ce qui, si je peux me permetre, est un non-sens).
Créé des fichiers à inclure avec dedans une fonction finissant par return ca me parait plus
judicieux.

Tu as aussi les fonctions : http://www.manuelphp.com/php/function.c ... r-func.php

Mais pariant sur le fait que je suis encore à côté je me fiche une claque eh eh eh ;)

@+ ;)

Invité
Invité n'ayant pas de compte PHPfrance

28 août 2009, 18:32

je sais concatener 2 variables, genre :

$a = 'toto'
$b = 'tata'
$c = $a.$b = 'tototata'

mais est il possible de faire un truc du genre :

$b = 'require('../includes/invitation_'.$langue.'.php')'; où $b contient donc le code de la page requise... ?

du coup, j'ai plus qu'à faire ma concaténation $a.$b et c'est bon...

sinon il y a effectivement la fonction avec un return, le return contenant l'ensemble de la page du require... mais c'est plus compliqué...

Eléphant du PHP | 369 Messages

28 août 2009, 18:43

je sais concatener 2 variables, genre :

$a = 'toto'
$b = 'tata'
$c = $a.$b = 'tototata'

mais est il possible de faire un truc du genre :

$b = 'require('../includes/invitation_'.$langue.'.php')'; où $b contient donc le code de la page requise... ?

du coup, j'ai plus qu'à faire ma concaténation $a.$b et c'est bon...

sinon il y a effectivement la fonction avec un return, le return contenant l'ensemble de la page du require... mais c'est plus compliqué...
Bein... Enfait, je t'ai donné la réponse (si, si, je t'assure) mais franchement ca risque d'être:
Moche, Super lent, avec plein d'autres trucs "pas sympas".

Je vois à peu près ta pensée et ce que tu veux mais ca marche pas tout à fait ainsi.

Exemple:

Code : Tout sélectionner

$Ta_variable = "require(\"Ton_Fichier.php\");";
La tu n'as que le path file. Te faut, pour avoir le script de la page, évaluer ta variable:

Code : Tout sélectionner

eval($Ta_Variable);
Voila. Je peux pas mieux dire que: évite eval... Elle est du côté obscur de la force ;)

Plus sèrieux, oui ce que tu cherches à faire peut se faire mais est déconseillé.
Attend d'autre réponse on sait jamais, mais... ;)

@+

Invité
Invité n'ayant pas de compte PHPfrance

28 août 2009, 19:50

merci de ton aide en tout cas, j'y vois plus clair !
je vais voir si quelqu'un a une idée, ou un autre angle d'attaque pour ce probleme...

ViPHP
ViPHP | 4039 Messages

29 août 2009, 08:42

Tu peux simplement lire un fichier dans une variable avec file_get_contents.

Après, tu peux insérer du contenu en insérant, dans le fichier que tu importes, ce que tu veux en utilisant des balises que tu remplaces par du texte.

Du genre:

Code : Tout sélectionner

<span>%%texte_du_span%%</span>
Et la il suffit de rechercher les balises et de les remplacer par le texte censé y aller.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.