[PHP] str_replace

BINEJE -  
 BINEJE -
Bonjour,
J'ai un probleme avec mon code PHP str_replace.

D'abord voila mon code php.

index.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    <head>
        <title>Binet JM</title>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<link href="style.css" rel="stylesheet" type="text/css" /> 
    </head>
        
    <body>
        <h1>Journal de Bord - Binet Jean-Marie</h1>
        <p>Liste des Billets :</p>
        <a href='http://journal-de-bord.legtux.org/'>Accueil</a>

 
<?php
// Connexion à la base de données
try
{
    $pdo_options[PDO::ATTR_ERRMODE] = PDO::ERRMODE_EXCEPTION;
    $bdd = new PDO('mysql:host=****;dbname=****', '****', '****', $pdo_options);
	
    // On récupère les 5 derniers billets
    $req = $bdd->query('SELECT id, titre, contenu, DATE_FORMAT(date_creation, \'%d/%m/%Y à %Hh%imin%ss\') AS date_creation_fr FROM **** ORDER BY date_creation');
    
    while ($donnees = $req->fetch())
    {
    ?>
    <div class="news">
        <h3>
            <?php echo htmlspecialchars($donnees['titre']); ?>
            <em>le <?php echo $donnees['date_creation_fr']; ?></em>
        </h3>
        
        <p>
        <?php
        // On affiche le contenu du billet
        include("smileys.php");
        echo nl2br(htmlspecialchars($donnees['contenu']));
        ?>
        <br />
        <em><a href="commentaires.php?billet=<?php echo $donnees['id']; ?>">Commentaires</a></em>
        </p>
    </div>
    <?php
    } // Fin de la boucle des billets
    $req->closeCursor();
    
}
catch(Exception $e)
{
    die('Erreur : '.$e->getMessage());
}
?>

</body>
</html>


smileys.php
<?php
$donnees = str_replace('merci' , '<img src="merci.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace('pleur' , '<img src="pleur.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace('idee' , '<img src="idee.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace('lol' , '<img src="lol.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace('zzz' , '<img src="zzz.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace('<3' , '<img src="<3.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace(':P' , '<img src=":P.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace(':O' , '<img src=":O.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace(':S' , '<img src="<3.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace(':)' , '<img src="<3.gif" alt="" class="" />', $donnees) ;
$donnees = str_replace(':D' , '<img src=":D.gif" alt="" class="" />', $donnees) ;
echo $donnees
?>


Maintenant, le probleme:
J'ai crée mes smileys et mes deux pages web mais quand j'ouve la page, il m'affiche
le résultat sans l'avoir modifié.

Auriez-Vous une idée???


A voir également:

4 réponses

boly38 Messages postés 267 Date d'inscription   Statut Membre Dernière intervention   80
 
Je pense que c'est le "htmlspecialchars" qui peut être de trop : soit le déporter dans la chaîne avant remplacement, soit l'enlever tout simplement.

Aussi dans smileys.php je ferai plutôt une fonction avec un argument entrée retournant en sortie la chaîne modifiée plutôt que de passer par une variable globale :
function updateContentUsingSmileys($donnees) {
 // les str_replace ici
 return $donnees;
}


et dans le fichier principal :
echo nl2br(updateContentUsingSmileys($donnees['contenu']));
0
BINEJE
 
Bonsoir,
Merci pour ton aide.

J'ai fais comme tu m'a dit.

index.php
<?php
        // On affiche le contenu du billet
	include("smileys.php")
        echo nl2br(updateContentUsingSmileys($donnees['contenu']));

        ?>
        <br />
        <em><a href="commentaires.php?billet=<?php echo $donnees['id']; ?>">Commentaires</a></em>
        </p>
    </div>


smiley.php
<?php
function updateContentUsingSmileys($donnees['contenu']) {

str_replace('merci' , '<img src="merci.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace('pleur' , '<img src="pleur.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace('idee' , '<img src="idee.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace('lol' , '<img src="lol.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace('zzz' , '<img src="zzz.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace('<3' , '<img src="<3.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace(':P' , '<img src=":P.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace(':O' , '<img src=":O.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace(':S' , '<img src="<3.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace(':)' , '<img src="<3.gif" alt="" class="" />', $donnees['contenu']) ;
str_replace(':D' , '<img src=":D.gif" alt="" class="" />', $donnees['contenu']) ;

 return $donnees['contenu'];
}
?>


Mais il me donne ceci

Parse error: syntax error, unexpected T_ECHO in /var/www/legtux.org/users/Journal-de-Bord/jmb/index.php on line 38
0
BINEJE
 
Voila. J'ai reussi a modifier mon code pour que cela affiche les iamges.

Mais le probleme, c'est qu'il n'affiche pas l'image. il affiche le code.

$donnees = str_replace(':D' , '<img src="http://journal-de-bord.legtux.org/jmb/heureux.gif"', $donnees) ;

resultat: Vais pouvoir commencer à le lire <img src="http://journal-de-bord.legtux.org/jmb/langue.gif">
0
BINEJE
 
Merci Mais j'ai trouvé par moi meme apres 3Heures de recherches.

index.php
include("smileys.php");
        //print nl2br(htmlspecialchars($donnees['contenu']));
	print nl2br($donnees['contenu']);


smileys.php
<?php

$donnees = str_replace('merci' , '<img src="http://journal-de-bord.legtux.org/jmb/merci.gif">', $donnees) ;
$donnees = str_replace('pleur' , '<img src="http://journal-de-bord.legtux.org/jmb/pleur.gif">', $donnees) ;
$donnees = str_replace('idee' , '<img src="http://journal-de-bord.legtux.org/jmb/idee.gif">', $donnees) ;
$donnees = str_replace('lol' , '<img src="http://journal-de-bord.legtux.org/jmb/lol.gif"', $donnees) ;
$donnees = str_replace('zzz' , '<img src="http://journal-de-bord.legtux.org/jmb/zzz.gif"', $donnees) ;
$donnees = str_replace('<3' , '<img src="http://journal-de-bord.legtux.org/jmb/coeur.gif">', $donnees) ;
$donnees = str_replace(':P' , '<img src="http://journal-de-bord.legtux.org/jmb/langue.gif">', $donnees) ;
$donnees = str_replace(':O' , '<img src="http://journal-de-bord.legtux.org/jmb/surprise.gif">', $donnees) ;
$donnees = str_replace(':S' , '<img src="http://journal-de-bord.legtux.org/jmb/S.gif"', $donnees) ;
$donnees = str_replace(':)' , '<img src="http://journal-de-bord.legtux.org/jmb/content.gif">', $donnees) ;
$donnees = str_replace(':D' , "<img src='http://journal-de-bord.legtux.org/jmb/heureux.gif'>", $donnees) ;
?>



Et le Resultat:
http://journal-de-bord.legtux.org/jmb/index.php
0