Willkommen in der Webstatt
User-1 am 14.09.06 14:49

hai.
ich komme jetzt mal mit nem n00b problem zu euch. weil große ERDO es nicht lösen konnte belästige ich euch jetzt damit.

also ich will eine art schleife haben...

in der eingabe will ich verschiedene smiliecodes haben und ein bild

also zb so

':D', ':-D',':LOLOMGWTF:' => 'biggrin.gif'

und das ganze sollte dann irgentwie in dieses dingens eingebaut werden

$text = preg_replace("/\:D/si", "<img src=\"".$smilie_pfad."bigrin.gif\" alt=\"*biggrin*\"/>", $text);

netcup.de Warum gibt es hier Werbung?
User-2 am 14.09.06 15:01

Öh, was für ne Eingabe?

User-1 am 14.09.06 15:14

ich habe drei/vier/fünf smiie codes wie zb :- ) :- ( : - D und das bild. biggrin.gif. die sollen im php code eingesetzt werden, also für jeden smiliiecode

soll jedes mal das ausgegeben werden mit dem passenden bild . ist das verständlich?

$text = preg_replace("/\:D/si", "<img src=\"".$smilie_pfad."bigrin.gif\" alt=\"*biggrin*\"/>", $text);

User-3 am 14.09.06 15:38

http://tut.php-q.net/guestbook-smilie.html -.-

User-1 am 14.09.06 16:34

ich glaube ihr habt mich nicht verstanden... schade...


also nochmal. es gibt ja verscheidene smileieCODES, zb :) :-) und so weiter.

und dann gibt es auch smilieBILDER wie zum beispiel das hier http://forum.webstatt.org/images/smilies/biggrin.gif

ich will jetzt jedem smilieBILD mehrere smilieCODES zuweisen können. und weil ich keine lust habe den oben angegebenen phpcode teil jedes mal neu kopieren und einzufügen, will ich es anders haben. ich will in eine funktion die bbcodes und den namen übergeben und diese dann in den oben von mir zitierten code einfürgen lassen...

zb

mach_mir_jetzt_die_smilies (":-D", ":-)" ,":)", "BILDNAME.gif",$TEXT)

und als ausgabe dann sein

$text = preg_replace("/\:-D/si", "<img src=\"".$smilie_pfad."BILDNAME.gif\" alt=\"*BILDNAME*\"/>", $text);
$text = preg_replace("/\:-)D/si", "<img src=\"".$smilie_pfad."BILDNAME.gif\" alt=\"*BILDNAME*\"/>", $text);
$text = preg_replace("/\:)/si", "<img src=\"".$smilie_pfad."BILDNAME.gif\" alt=\"*BILDNAME*\"/>", $text);

IST DAS SO SCHWER? :(

User-4 am 14.09.06 16:58

$smilies = array(
':)' => '[:)]',
':-)' => '[:)]',
':o)' => '[:)]',
':(' => '[:(]',
':-(' => '[:(]',
':o(' => '[:(]'
);

foreach ($smilies as $find => $replace) {
$text = str_replace($find, $replace, $text);
}

preg_replace() ist hier die sprichwörtliche Kanone auf die Spatzen ;)

User-5 am 14.09.06 17:20

Meinst du so:

function meinst_du_das_so($smilies,$bild,$alt,$smilie_pfad,$text) {
$text = str_replace($smilies, "<img src=\"$smilie_pfad$bild\" alt=\"*$alt*\"/>", $text);

return $text;
}


Alernativ kannst su st_replace auch direkt einen Array als ersten Parameter übergeben und nur einen Ersatztext - dann wird der für jedes Element benutzt

User-1 am 14.09.06 18:26

statt $ smilies halt gaanz viele smiliecodes

User-5 am 14.09.06 19:01

$smilies = array('1','2','3','4');

User-4 am 14.09.06 20:21

Der Trick funktioniert aber nur, wenn die ersten beiden Argumente Arrays gleicher Länge sind.

Was spricht denn gegen mein Beispiel? :'(

User-5 am 14.09.06 21:14

Wenn das zweite Argument ein String ist, wird der für jedes Element des ersten benutzt.
Also genau was er wollte (sofern ich xyz-70 richtig verstanden habe)

Er möchte eine Funktion haben, die verschiedene Textfolgen mit dem gleichen Smily ersetzt, einfach damit er es nicht mit Copy&Paste ganz oft untereinenader schreiben muss?

User-1 am 14.09.06 21:23

ja halt schon so schauts aus..


ich will sowas vermeinden:

//:D
$text = preg_replace("/\:D/si",
"<img src=\"".$smilie_pfad."grin.gif\" alt=\"*grins*\"/>", $text);
//:-D
$text = preg_replace("/\:-D/si",
"<img src=\"".$smilie_pfad."biggrin.gif\" alt=\"*grins*\"/>", $text);

//:|
$text = preg_replace("/\:\|/si",
"<img src=\"".$smilie_pfad."worried.gif\" alt=\"*worried*\"/>", $text);

//;)
$text = preg_replace("/\;\)/si",
"<img src=\"".$smilie_pfad."wink.gif\" alt=\"*zwinker*\"/>", $text);

//:P
$text = preg_replace("/\:P/si",
"<img src=\"".$smilie_pfad."tongue.gif\" alt=\"*worried*\"/>", $text);
//:P
$text = preg_replace("/\:-P/si",
"<img src=\"".$smilie_pfad."tongue.gif\" alt=\"*worried*\"/>", $text);

//;P
$text = preg_replace("/\;P/si",
"<img src=\"".$smilie_pfad."tongue.gif\" alt=\"*worried*\"/>", $text);

//o0
$text = preg_replace("/0o/si",
"<img src=\"".$smilie_pfad."suspicious.gif\" alt=\"*hmm*\"/>", $text);

//o0
$text = preg_replace("/\o0/si",
"<img src=\"".$smilie_pfad."suspicious.gif\" alt=\"*hoe*\"/>", $text);

//°_°
$text = preg_replace("/°_°/si",
"<img src=\"".$smilie_pfad."normal.gif\" alt=\"*pokerface*\"/>", $text);
//-.-
$text = preg_replace("/-.-/si",
"<img src=\"".$smilie_pfad."normal.gif\" alt=\"*pokerface*\"/>", $text);

User-5 am 14.09.06 21:41

gleiche könntest du immer so zusammenfassen;

$search = array('°_°','-_-');
$text = str_replace($search,"<img src=\"".$smilie_pfad."normal.gif\" alt=\"*pokerface*\"/>", $text);

User-4 am 14.09.06 21:46

> Wenn das zweite Argument ein String ist, wird der für jedes Element des ersten benutzt.

Stümmt.. hatte da wohl vorher beim ausprobieren was vermurkst ;)

Die offizielle manpage zu str_replace is aber auch selten schlecht.. :S


xyz-70, du Vogel.. wozu gibt's denn arrays und Schleifen? :P

User-1 am 14.09.06 21:52

schau mal auf meinen 1. post... kannst du mir jetzt ne schleife machen?
oder halt ne funktion dass ich nicht so viel schreiben muss, nur noch die smileys und das bild?

User-4 am 14.09.06 22:04

Da hassu, sogar mit Titeln ;)

$smilies = array(
':D' => array('biggrin.gif', 'biggrin'),
':-D' => array('biggrin.gif', 'biggrin'),
':LOLOMGWTF:' => array('biggrin.gif', 'biggrin'),
);

foreach ($smilies as $find => $replace) {
list($img, $title) = $replace;
$replace = '<img src="'.$img.'" alt="'
.$find.'" title="'.$title.'" />';
$text = str_replace($find, $replace, $text);
}

User-1 am 14.09.06 22:40

DANKEH!
ihr seid alle tol .. :D

Creative Commons Lizenzvertrag
Alle Inhalte des Webstatt-Archivs stehen unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 3.0 Unported Lizenz.

Impressum & Kontakt