Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] str_replace - uśmieszki
Forum PHP.pl > Forum > Przedszkole
Majkelo23
Mam problem z emotikonami, które od kilku godzin próbuję wprowadzić do swojego CMSa. Kod wygląda tak:

Kod
function prepare_message($message)
{
    $sql = "SELECT * FROM `smilies`";
        $result = mysql_query($sql)
            or die(mysql_error());
        while($row = mysql_fetch_assoc($result))
        {
            $code = $row['code'];
            $url = $row['smile_url'];
            
            $body .= ', "<img src="./templates/default/images/smilies/'.$url.'" border="0" title="titlee">';
            $bodyy .= ', "'.$code.'"';
        }
            
        $message = str_replace(array($bodyy,"\n", "[u]", "[b]", "[i]", "[/i]", "[/b]", "[/u]"), array($body,"\n<br />\n", "<u>", "<b>", "<i>", "</i>", "</b>", "</u>"), $message);
        
        return $message;
}


Ale to za cholerę nie chce zamieniać tekstów na ikony. Zrzut tabeli z bazy wygląda tak:



Może wy mi coś podpowiecie, bo ja od 2h nic nie potrafię z tego wykombinować ;/
maniana
Po while wyprintuj sobie zawartość $body i $bodyy. Tworzysz stringa a nie tablice...
Do tablic najlepiej:
Przed pętlą:
  1. $body = array();
  2. $bodyy = array();
W środku:
  1. $body[] = '<img src="./templates/default/images/smilies/'.$url.'" border="0" title="titlee">';
  2. $bodyy[] = $code;
I do tego zamiana w dwóch krokach:
  1. $message = str_replace($bodyy, $body, $message);
  2. $message = str_replace(array("\n", "[ u]", "[ b]", "[ i]", "[/i]", "[/b]", "[/u]"), array("\n<br />\n", "<u>", "<b>", "<i>", "</i>", "</b>", "</u>"), $message);
Majkelo23
Jesteś wielki smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.