Utiliser du php dans str_replace()

Résolu/Fermé
batt01 Messages postés 34 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 27 avril 2011 - 15 juin 2010 à 15:27
batt01 Messages postés 34 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 27 avril 2011 - 16 juin 2010 à 08:56
Bonjour,

J'ai besoin d'aide pour programmer un CMS qui utilise des templates. Voici mon problème en plus détaillé:

Je possède une base de données qui contient des news à afficher. Pour chacune des pages du site, je code 3 pages:

-> templatecorps.html qui est mon template
-> contenunews.html qui lit dans la bdd et génère la réponse (me pose problème)
-> le générateur de pages news.php pour lier le template et le contenu généré, qui utilise la fonction str_replace().
https://www.php.net/manual/fr/function.str-replace.php

Mon probleme est peut etre tout simple, mais str_replace n'accepte que des paramètres HTML, mais je suis bien obligé de me servir de php pour interagir dans la base de données.
Comment faire?

(je suis obligé d'utiliser ce système de fichiers et templates, c'est dans un sujet)

voici un peu de mon code.

Générateur :

$corps=file_get_contents('news.html');
$contenu_corps=file_get_contents('template/template_corp.html');
$replace_corps=str_replace("<%% corps %%>",$corps,$contenu_corps);
echo $replace_corps;

Template :


<html>
<head>
<title>CMS pour la Semaine speciale 2</title>
<link rel="stylesheet" media="screen" type="text/css" title="Design" href="index.css" />
</head>
<body>

<div id="corps">
<%% corps %%>
</div>

</body>
</html>

contenu : il faut un fichier hmtl qui contienne le contenu de ce code php :

echo'<h1>Les NEWS de la semaine spéciale</h1>';
$link = mysql_connect('localhost','root','');
if (!$link)
die('Problème de connexion à la base');
if (!mysql_select_db('mabdd',$link))
die('Problème de selection de base de données');
$sql = 'select * from article where idcategorie=2 && etatarticle=2';
$query = mysql_query($sql,$link);

while ($ligne = mysql_fetch_assoc($query)) {
//$sql2 = 'select loginuser from user where iduser='.$ligne['iduser'];
//$query2 = mysql_query($sql2,$link);
//while ($ligne2 = mysql_fetch_assoc($query2)) {
$_SESSION['variable'] = echo''.$ligne['titrearticle'].'<br><br>'.$ligne['contenuarticle'].'';
echo'<br><br>';
//}
}


A voir également:

3 réponses

louloute300 Messages postés 335 Date d'inscription jeudi 3 juin 2010 Statut Membre Dernière intervention 28 novembre 2012 29
Modifié par louloute300 le 15/06/2010 à 17:19
J'ai pas tout lu, mais et si tu utiliserai ereg_replace?
0
batt01 Messages postés 34 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 27 avril 2011
16 juin 2010 à 07:09
Bonjour loulou300 et merci de me répondre

c'est à dire qu'est ce que cela change par rapport str_replace?

De plus lorsque je lance tous cela dans un navigateur j'ai mon menu normale et quand je clique sur news il me met le code php complet au lieu de mettre seulement le résultat de la requête. je sèche vraiment la!

Cordialement
0
batt01 Messages postés 34 Date d'inscription samedi 4 avril 2009 Statut Membre Dernière intervention 27 avril 2011
16 juin 2010 à 08:56
C'est bon j'ai réussi un eval sur ce que je voulais marqué et voila il écrit ce que je veux.
Merci
0