Felix Riesterer: Was ist falsch?

Beitrag lesen

Lieber Sp33dy,

Dein Code:

  
for($i = 0; $i < count($smilie); $i++) {  
  $kommentar = str_replace($smilie[$i], $link[$i], nl2br(htmlspecialchars($row["Kommentar"])));  
}  
  echo "<div id=\"comment_text\">" . $kommentar . "</div></div>\n";

In der Zeile mit $kommentar=... überschreibst Du jedesmal in der Schleife den bisher dort eingetragenen Wert durch einen neuen Wert. Mein Vorschlag:

$alle_smilies = array(  
    // jedes Unter-Array ist ein "assoziatives" Array mit Index "kuerzel" und Index "bild"  
    array(  
        'kuerzel' => ':)',  
        'bild' => 'http://www.cs-erweiterungen.de/images/smilies/smile.gif'  
    ),  
    array(  
        'kuerzel' => ';(',  
        'bild' => 'http://www.cs-erweiterungen.de/images/smilies/wink.gif'  
    ),  
    array(  
        'kuerzel' => ':(',  
        'bild' => 'http://www.cs-erweiterungen.de/images/smilies/frown.gif'  
    )  
);  
  
$kommentar = ''; // Leeren String initialisieren (wird in der Schleife etappenweise gefüllt)  
  
foreach ($alle_smilies) as $ein_smiley) {  
    // hier existiert nun eine Variable namens "smiley". Sie ist eine Kopie  
    // des entsprechenden Unterarrays von $alle_smilies und enthält die zwei  
    // Indices 'kuerzel' und 'bild'.  
    $kommentar .= str_replace(  
        $ein_smiley['kuerzel'], // Enthält das Kürzel, das jetzt durch  
        $ein_smiley['bild'],    // die Bilddatei eretzt wird.  
        nl2br(  
            htmlspecialchars($row["Kommentar"])  
        )  
    );  
}  
  
// Der Kommentar braucht kein <div>! Ein simples <p> genügt und ist wesentlich semantischer!  
echo '<p id="comment_text">' . $kommentar . "</p>\n";

Liebe Grüße aus Ellwangen,

Felix Riesterer.

--
ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)