[PHP] str_replace

Fermé
BINEJE - 6 avril 2011 à 18:40
 BINEJE - 6 avril 2011 à 21:03
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 mercredi 23 février 2011 Statut Membre Dernière intervention 29 septembre 2016 80
6 avril 2011 à 19:00
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
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
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
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