php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.05.2008, 11:43  
Neuer Benutzer
 
Registriert seit: 12.05.2008
Beiträge: 20
jackoff befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Smilies mittels str_replace einsetzen?

Hallo zusammen!

ich würde gerne in meinem Gästebuch zb: "" gegen eine smilie-grafik ersetzen.

ich habe natürlich bereits google zu genüge bemüht deswegen, aber ich schaffe es einfach nicht das es klappt, da meine php Kenntnisse noch relativ am Anfang stehen.

ich weiß bisher das wenn, dann muss die smilie-grafik beim auslesen erst eingefügt werden und das man das mit dem befehl str_replace machen kann.

Mein Gästebuch funktioniert schon korrekt. Nur die Sache mit den Smilies noch nicht.

Was ich bisher habe:
Code:
<?php

            include('datenbank.php');
            $db2 = mysql_query("SELECT * FROM gbuch ORDER by id DESC");
            while($db3 = mysql_fetch_array($db2)){ 

            echo '             
                      
                 <div class="inhalt">

                       <table id="nachricht" class="gb">

                            <tr>

                                <td>

                                '.$db3[nachricht]. '

                                </td>

                            </tr>

                        </table>

                  </div>                   
            ';
            }
            ?>
wie kann ich jetzt in meiner Ausgabe $db3[nachricht] z.b. ": - )" (ohne die leerzeichen versteht sich^^) durch eine grafik ersetzen?

Danke schon mal im Voraus!

Grüße Jackoff
jackoff ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 12.05.2008, 11:47  
Moderator
 
Benutzerbild von agrajag
 
Registriert seit: 02.10.2006
Beiträge: 3.820
PHP-Kenntnisse:
Fortgeschritten
agrajag wird schon bald berühmt werdenagrajag wird schon bald berühmt werden
Standard

Ja das kann man mit str_replace machen.
Code:
 $text = str_replace('; - )', '<img alt="; - )" src=...', $text);
Wie str_replace genau funktioniert kannst du im Manual nachlesen:
PHP: str_replace - Manual

Weitere Infos zu deinem Problem findest du _massenhaft_ wenn du bei Google einfach nach "smilies ersetzen php" suchst: smilies ersetzen php - Google-Suche
__________________
Today you...Tomorrow me.
agrajag ist offline  
Alt 12.05.2008, 11:58  
Neuer Benutzer
 
Registriert seit: 12.05.2008
Beiträge: 20
jackoff befindet sich auf einem aufstrebenden Ast
Standard

ja, da finde ich tonnenweise ich weiß.

ich weiß ja auch grob wie es gehen müsste,
aber ich weiß eben nicht, WO in meinem Code ich des dann reinsetzen muss.

Und muss dieses $text immer gleich sein? oder ist das in meinem fall $nachricht ?
jackoff ist offline  
Alt 12.05.2008, 12:07  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Hallo!

Ob das nun $text oder so wie bei dir heist ist völlig wurscht. Du musst die Variable einsetzen wo sich dein Text befindet und da so was keine Konstante ist ist das auch egal wie die heist!

Eine andere Frage ist aber speicherst du so wie ich die Smilies in einer extra Tabelle in der DB oder nicht?

Desweiteren würde einen solchen Code hier aber ändern das er zum Beispiel so ausschaut :: damit stellst du sicher das zum wenn du zum Beispiel für ein Smilie den Coder kotz benutzt er nicht nicht ein Smilie ausgibt obwohl der Schreiber das gar nicht im Sinn hat darum sollte das so aussehen :kotz: dann gibt er auch nur ein Smilie aus wenn das so da steht!

Ansonsten so sieht ein der Befehl dafür aus!

PHP-Code:
$db3[nachricht] = str_replace("::-):","<img src=\"pfad_zum_smilieverzeichnis/smilie.gif\" border=\"0\">",$db3[nachricht]) 
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
Alt 12.05.2008, 12:21  
Neuer Benutzer
 
Registriert seit: 12.05.2008
Beiträge: 20
jackoff befindet sich auf einem aufstrebenden Ast
Standard

also du meinst dann so:

Code:
<?php

            include('datenbank.php');
            $db2 = mysql_query("SELECT * FROM gbuch ORDER by id DESC");
            while($db3 = mysql_fetch_array($db2)){ 

            echo '             
                      
                 <div class="inhalt">

                       <table id="nachricht" class="gb">

                            <tr>

                                <td>

                                $db3[nachricht] = str_replace("::-):","<img src=\"images/smilies/grinsen.gif\" border=\"0\">",$db3[nachricht]) 

                                </td>

                            </tr>

                        </table>

                  </div>                   
            ';
            }
            ?>
weil so funktioniert das nicht. da gibt er mir genau diese zeile aus da wo die nachricht stehen sollte:

Code:
$db3[nachricht] = str_replace("::-):","",$db3[nachricht])
trotzdem danke schon mal!
jackoff ist offline  
Alt 12.05.2008, 12:26  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Du musst aber die Doppelpunkte in deinem Javascript auch so mit einbinden also es muss in deinem Textfeld wenn auf den Smilie geklickt wurde dann so drin stehen

:grins: oder :: also nicht bloß in str_replace so rein schreiben!


Bei mir sieht das so aus und funktioniert. Allerdings hole ich die Smilies also den Code und Namen aus einer DB!

In der DB steht bei Code dann so was drin

id code img
1 :jubel: jubel.gif

PHP-Code:
<script type="text/javascript">
            <!--
            function smilie(strText,objElem)
                {
                if(document.selection)
                    {
                    objElem.focus();
                    document.selection.createRange().text=strText;
                    document.selection.createRange().select();
                    }
                  else if (objElem.selectionStart || objElem.selectionStart == '0')
                    {
                    intStart = objElem.selectionStart;
                    intEnd = objElem.selectionEnd;
                    objElem.value = (objElem.value).substring(0, intStart) + strText + (objElem.value).substring(intEnd, objElem.value.length);
                    objElem.selectionStart=objElem.selectionEnd=intStart+strText.length;
                    objElem.focus();
                    }
                  else
                    {
                    objElem.value += strText;
                    }
                }
            //-->
</script>
<?php
$sqlbefehl 
="Select * From $tab_smilie limit 10";
$ergebnis mysql_query($sqlbefehl)or die(mysql_error());
while(
$row mysql_fetch_array($ergebnis)){
  
$smileid $row['id'];
  
$code $row['code'];
  
$image $row['image'];
?>
<a href="javascript:smilie('<?php echo $code ?>',document.formular.text)"><?php echo "<img src=\"../smilies/".$image."\" border=\"0\">";?></a>
<?php
}
?>
Der Code etscheint dann im Textfeld so :jubel: !

Und beim auslesen natürlich wieder aus der DB holen und dann mache ich den str_replace

Was dann bei mir so ausschaut

PHP-Code:
$sqlbefehl ="Select * From $tab_smilie";
$smile mysql_query($sqlbefehl)or die(mysql_error());
while(
$row mysql_fetch_array($smile)){
  
$code $row['code'];
  
$smilie $row['image'];
  
$text str_replace($code,"<img src=\"../smilies/".$smilie."\" border=\"0\">",$text);

Das $text kommt natürlich vorher aus der Tabelle der Einträge!
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de

Geändert von litterauspirna (12.05.2008 um 12:33 Uhr).
litterauspirna ist offline  
Alt 12.05.2008, 12:44  
Neuer Benutzer
 
Registriert seit: 12.05.2008
Beiträge: 20
jackoff befindet sich auf einem aufstrebenden Ast
Standard

aha.

allerdings mache ich das (vorest zumindest) nicht mit javascript.

ich möchte "einfach", dass wenn jemand eine nachricht erstellt und dabei zb. die zeichenfolge :: benutzt, dass anstelle von :: beim auslesen eben ein smilie (also eine grafik) erscheint.

die smilies sind im webspace in dem verzeichnis /images/smilies/smilie.gif gespeichert und nicht in der db.

und jetzt habe ich eben das problem mit deinem code, dass er mir anstelle einer nachricht diese zeile hier anzeigt:
Code:
$db3[nachricht] = str_replace("::-):","",$db3[nachricht])
grüße jackoff
jackoff ist offline  
Alt 12.05.2008, 12:51  
Supermoderator HD
 
Benutzerbild von Manko10
 
Registriert seit: 16.03.2008
Beiträge: 8.709
PHP-Kenntnisse:
Fortgeschritten
Manko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende ZukunftManko10 hat eine strahlende Zukunft
Standard

Wie sieht denn dein Code derzeit aus?
Manko10 ist offline  
Alt 12.05.2008, 12:59  
Neuer Benutzer
 
Registriert seit: 12.05.2008
Beiträge: 20
jackoff befindet sich auf einem aufstrebenden Ast
Standard

der code bei dem der fehler auftritt sieht genau so aus:

PHP-Code:
<?php

            
include('datenbank.php');
            
$db2 mysql_query("SELECT * FROM gbuch ORDER by id DESC");
            while(
$db3 mysql_fetch_array($db2)){ 

            echo 
'             
                      
                 <div class="inhalt">

                       <table id="nachricht" class="gb">

                            <tr>

                                <td>

                                $db3[nachricht] = str_replace("::-):","<img src=\"images/smilies/grinsen.gif\" border=\"0\">",$db3[nachricht]) 

                                </td>

                            </tr>

                        </table>

                  </div>                   
            '
;
            }
?>
jackoff ist offline  
Alt 12.05.2008, 13:04  
Erfahrener Benutzer
 
Benutzerbild von litterauspirna
 
Registriert seit: 24.04.2008
Beiträge: 3.172
PHP-Kenntnisse:
Anfänger
litterauspirna sorgt für eine eindrucksvolle Atmosphärelitterauspirna sorgt für eine eindrucksvolle Atmosphäre
litterauspirna eine Nachricht über ICQ schicken
Standard

Nutze doch einfach das Javascript was ich mit gepostet habe. Das funktioniert und speichert sogar die Curserstellung!

So machst du es doch den Usern einfacher!

Du musst nur das mit der DB Sache auf dich anpassen,sprich raus löschen!
__________________
Aus dem Dynamo Lande kommen wir. Trinken immer reichlich kühles Bier. Und dann sind wir alle voll, die Stimmung ist so toll. Aus dem Dynamo Lande kommen wir.
http://www.lit-web.de
litterauspirna ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php smilies ersetzen, smiley jubel, str_replace smileys php, str_replace smileys, php str_replace smiley, str_replace smiley, str_replace smilies, str_replace grafik, gif jubel, erledigt smiley, smilies einsetzen, jubel smiley, smilies str_replace, smilies jubel, smilie jubel, php smiley str_replace, jubel gif, jubel smilie, str_replace einsetzen, smilies in datei str_replace

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:57 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum