Webstatt.org - Community seit 2006 - 2012 (2024?)

smilies+schleife

Avatar user-180
14.09.2006 12: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

 'Fettes Grinsen', 'Fettes Grinsen',':LOLOMGWTF:' => 'biggrin.gif'


und das ganze sollte dann irgentwie in dieses dingens eingebaut werden


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

may the force be with you. but mostly with me.
Avatar user-317
14.09.2006 13:01

Öh, was für ne Eingabe?

Avatar user-180
14.09.2006 13: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("/\Fettes Grinsen/si", "<img src=\"".$smilie_pfad."bigrin.gif\" alt=\"*biggrin*\"/>", $text);

may the force be with you. but mostly with me.
user-157
14.09.2006 13:38

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

asdf!
Avatar user-180
14.09.2006 14:34

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


also nochmal. es gibt ja verscheidene smileieCODES, zb lächeln lächeln 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 ("Fettes Grinsen", "lächeln" ,"lächeln", "BILDNAME.gif",$TEXT)

und als ausgabe dann sein

$text = preg_replace("/\Fettes Grinsen/si", "<img src=\"".$smilie_pfad."BILDNAME.gif\" alt=\"*BILDNAME*\"/>", $text);
$text = preg_replace("/\lächelnD/si", "<img src=\"".$smilie_pfad."BILDNAME.gif\" alt=\"*BILDNAME*\"/>", $text);
$text = preg_replace("/\lächeln/si", "<img src=\"".$smilie_pfad."BILDNAME.gif\" alt=\"*BILDNAME*\"/>", $text);

IST DAS SO SCHWER? traurig

may the force be with you. but mostly with me.
Avatar user-255
14.09.2006 14:58

$smilies = array(
'lächeln' => '[lächeln]',
'lächeln' => '[lächeln]',
'überrascht)' => '[lächeln]',
'traurig' => '[traurig]',
'traurig' => '[traurig]',
'überrascht(' => '[traurig]'
);

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

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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-253
14.09.2006 15: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

Avatar user-180
14.09.2006 16:26

statt $ smilies halt gaanz viele smiliecodes

may the force be with you. but mostly with me.
Avatar user-253
14.09.2006 17:01

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

Avatar user-255
14.09.2006 18:21

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

Was spricht denn gegen mein Beispiel? :'(

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-253
14.09.2006 19:14

Wenn das zweite Argument ein String ist, wird der für jedes Element des ersten benutzt.
Also genau was er wollte (sofern ich user-180 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?

Avatar user-180
14.09.2006 19:23

ja halt schon so schauts aus..


ich will sowas vermeinden:


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

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

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

//frech
$text = preg_replace("/\frech/si",
"<img src=\"".$smilie_pfad."tongue.gif\" alt=\"*worried*\"/>", $text);
//frech
$text = preg_replace("/\frech/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);

may the force be with you. but mostly with me.
Avatar user-253
14.09.2006 19:41

gleiche könntest du immer so zusammenfassen;

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

Avatar user-255
14.09.2006 19: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 zwinkern

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


fish, du Vogel.. wozu gibt's denn arrays und Schleifen? frech

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-180
14.09.2006 19: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?

may the force be with you. but mostly with me.
Avatar user-255
14.09.2006 20:04

Da hassu, sogar mit Titeln zwinkern

$smilies = array(
'Fettes Grinsen' => array('biggrin.gif', 'biggrin'zwinkern,
'Fettes Grinsen' => array('biggrin.gif', 'biggrin'zwinkern,
':LOLOMGWTF:' => array('biggrin.gif', 'biggrin'zwinkern,
);

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

Those who can, do. Those who can't, teach. # Musik gehört dem Volk! # last.fm
Avatar user-180
14.09.2006 20:40

DANKEH!
ihr seid alle tol .. Fettes Grinsen

may the force be with you. but mostly with me.