Någon som vet hur man kan göra så att till exempel en :] blir en img-fil med hjälp av någon smidig php-kod?
Lite off topic: får man kopiera "smilisarna" från webforum? :)
Edit: använder mig inte av mySQL osv.
28 svar · 1 086 visningar · startad av silfver
Någon som vet hur man kan göra så att till exempel en :] blir en img-fil med hjälp av någon smidig php-kod?
Lite off topic: får man kopiera "smilisarna" från webforum? :)
Edit: använder mig inte av mySQL osv.
Tackar så mycket Web-Tor! Visste inte riktigt vad jag skulle söka efter, annars brukar jag göra det ;)
Då jag inte är en hejare på php så får jag inte koden att funka.
Varför funkar det inte så som jag gjort nedan?
<?php
$smilie = eregi_replace(":)", "<img src=\"img/smile.gif\">", $smilie);
$smilie = eregi_replace(":(", "<img src=\"img/smile/smiley_=(.gif\">", $smilie);
?>
så här kanske ?
$message = str_replace (":)", "<img src=\"/images/forum/icons/smiley.gif\">", $message);
. :birp
Hehe!
Vågar inte testa, men en polare fick det här att fungera:
<?php
function callback($buffer)
{
$returnthis = eregi_replace(":)", "<img src='img/smile.gif'>", $buffer);
$returnthis = eregi_replace(":(", "<img src='img/smile2.gif'>", $returnthis);
return ($returnthis);
}
ob_start("callback");
?>
Men problemet är att man inte kan lägga in fler strängar med smilies, eller. Jag vet inte hur?
mvh
Så här ser det ut i ett script jag har gjort, så det vet jag att fungerar.
$text = $r["text"];
$text = str_replace("x(", "<IMG SRC=\"bilder/smilies/angry.gif\">", $text);
$text = str_replace("§e", "<IMG SRC=\"bilder/smilies/devilgrin.gif\">", $text);
$text = str_replace(":bire", "<IMG SRC=\"bilder/smilies/bire.gif\">", $text);
$text = str_replace(":f", "<IMG SRC=\"bilder/smilies/flirt.gif\">", $text);
$text = str_replace(":q", "<IMG SRC=\"bilder/smilies/quest.gif\">", $text);
$text = str_replace(":o", "<IMG SRC=\"bilder/smilies/redface.gif\">", $text);
$text = str_replace(":r", "<IMG SRC=\"bilder/smilies/shame.gif\">", $text);
$text = str_replace(":D", "<IMG SRC=\"bilder/smilies/biggrin.gif\">", $text);
$text = str_replace(";)", "<IMG SRC=\"bilder/smilies/wink.gif\">", $text);
$text = str_replace(":P", "<IMG SRC=\"bilder/smilies/blah.gif\">", $text);
$text = str_replace(":i", "<IMG SRC=\"bilder/smilies/idea.gif\">", $text);
$text = str_replace(":birp", "<IMG SRC=\"bilder/smilies/beergrin.gif\">", $text);
$text = str_replace(":(", "<IMG SRC=\"bilder/smilies/frown.gif\">", $text);
$text = str_replace(":)", "<IMG SRC=\"bilder/smilies/smile.gif\">", $text);
$text = str_replace(":x", "<IMG SRC=\"bilder/smilies/dead.gif\">", $text);
$text = str_replace(":h", "<IMG SRC=\"bilder/smilies/cool.gif\">", $text);
$text = str_replace(":stud", "<IMG SRC=\"bilder/smilies/stud.gif\">", $text);
$text = str_replace(":p", "<IMG SRC=\"bilder/smilies/tongue.gif\">", $text);
$text = str_replace(":l", "<IMG SRC=\"bilder/smilies/hrmpf.gif\">", $text);
$text = str_replace("§jr", "<IMG SRC=\"bilder/smilies/devel.gif\">", $text);
$text = str_replace(":e", "<IMG SRC=\"bilder/smilies/biggrin.gif\">", $text);
r/ Såg nu att du inte använde databas, men låter det stå kvar ändå. :)
Pedda
Ja, men jag förstår inte hur jag ska använda mig av den koden.
Den jag la in där funkar, men jag vet inte hur man gör för att läggat till fler strängar, då slutar scriptet att fungera...
silfver skrev:
Pedda
Ja, men jag förstår inte hur jag ska använda mig av den koden.
Den jag la in där funkar, men jag vet inte hur man gör för att läggat till fler strängar, då slutar scriptet att fungera...
Gör en funktion av Peddas kod.
funktion smiley($m){
$text = $m;
$text = str_replace("x(", "<IMG SRC=\"bilder/smilies/angry.gif\">", $text);
$text = str_replace("§e", "<IMG SRC=\"bilder/smilies/devilgrin.gif\">", $text);
$text = str_replace(":bire", "<IMG SRC=\"bilder/smilies/bire.gif\">", $text);
$text = str_replace(":f", "<IMG SRC=\"bilder/smilies/flirt.gif\">", $text);
$text = str_replace(":q", "<IMG SRC=\"bilder/smilies/quest.gif\">", $text);
$text = str_replace(":o", "<IMG SRC=\"bilder/smilies/redface.gif\">", $text);
$text = str_replace(":r", "<IMG SRC=\"bilder/smilies/shame.gif\">", $text);
$text = str_replace(":D", "<IMG SRC=\"bilder/smilies/biggrin.gif\">", $text);
$text = str_replace(";)", "<IMG SRC=\"bilder/smilies/wink.gif\">", $text);
$text = str_replace(":P", "<IMG SRC=\"bilder/smilies/blah.gif\">", $text);
$text = str_replace(":i", "<IMG SRC=\"bilder/smilies/idea.gif\">", $text);
$text = str_replace(":birp", "<IMG SRC=\"bilder/smilies/beergrin.gif\">", $text);
$text = str_replace(":(", "<IMG SRC=\"bilder/smilies/frown.gif\">", $text);
$text = str_replace(":)", "<IMG SRC=\"bilder/smilies/smile.gif\">", $text);
$text = str_replace(":x", "<IMG SRC=\"bilder/smilies/dead.gif\">", $text);
$text = str_replace(":h", "<IMG SRC=\"bilder/smilies/cool.gif\">", $text);
$text = str_replace(":stud", "<IMG SRC=\"bilder/smilies/stud.gif\">", $text);
$text = str_replace(":p", "<IMG SRC=\"bilder/smilies/tongue.gif\">", $text);
$text = str_replace(":l", "<IMG SRC=\"bilder/smilies/hrmpf.gif\">", $text);
$text = str_replace("§jr", "<IMG SRC=\"bilder/smilies/devel.gif\">", $text);
$text = str_replace(":e", "<IMG SRC=\"bilder/smilies/biggrin.gif\">", $text);
return $text;
}
Som du sedan kallar på med t.ex:
print(smiley($message))
Tack för ditt svar. Men hur menar du att jag ska kalla på texten?
Jag vill ju att det ska räcka med att jag skriver "=)" så ska det bli en smiley.
En kompis gjorde den här, som jag skrev tidigare i tråden, och om du skriver så, så förstår jag precis hur jag ska göra :D
http://home.sebbz.com/~sebbz/silfverkod.php
Ok, nu förstod jag vad du var ute efter :) :) :)
Bygg ut din kod såhär:
function callback($buffer)
{
$returnthis = eregi_replace("=)", "<img src='img/smile.gif'>", $buffer);
$returnthis = eregi_replace(":)", "<img src='img/smile2.gif'>", $returnthis);
$returnthis = eregi_replace(";)", "<img src='img/smile3.gif'>", $returnthis);
$returnthis = eregi_replace(":o", "<img src='img/smile4.gif'>", $returnthis);
$returnthis = eregi_replace(":!", "<img src='img/smile5.gif'>", $returnthis);
return ($returnthis);
}
...osv
Borde funka tycker jag.
Underbart! Funkar prima! :D
Hm. Eller kanske inte ändå. Försökte skriva in alla gubbar på en gång:
<?php
function callback($buffer)
{
$returnthis = eregi_replace(":(", "<img src='img/frown.gif'>", $buffer);
$returnthis = eregi_replace(":)", "<img src='img/smile.gif'>", $returnthis);
$returnthis = eregi_replace(";)", "<img src='img/wink.gif'>", $returnthis);
$returnthis = eregi_replace(":$", "<img src='img/shame.gif'>", $returnthis);
$returnthis = eregi_replace(":x", "<img src='img/angry.gif'>", $returnthis);
$returnthis = eregi_replace(":beer:", "<img src='img/beergrin.gif'>", $returnthis);
$returnthis = eregi_replace(":beer2:", "<img src='img/bire.gif'>", $returnthis);
$returnthis = eregi_replace("8)", "<img src='img/cool.gif'>", $returnthis);
$returnthis = eregi_replace("x(", "<img src='img/dead.gif'>", $returnthis);
$returnthis = eregi_replace("(6)", "<img src='img/devel.gif'>", $returnthis);
$returnthis = eregi_replace(":D", "<img src='img/supergrin.gif'>", $returnthis);
$returnthis = eregi_replace(":flirt:", "<img src='img/dead.gif'>", $returnthis);
$returnthis = eregi_replace(":/", "<img src='img/dead.gif'>", $returnthis);
$returnthis = eregi_replace(":idea:", "<img src='img/dead.gif'>", $returnthis);
$returnthis = eregi_replace(":DD", "<img src='img/laugh.gif'>", $returnthis);
$returnthis = eregi_replace(":oo", "<img src='img/look.gif'>", $returnthis);
$returnthis = eregi_replace(":?", "<img src='img/quest.gif'>", $returnthis);
$returnthis = eregi_replace(":stud:", "<img src='img/stud.gif'>", $returnthis);
$returnthis = eregi_replace(":P", "<img src='img/tongue.gif'>", $returnthis);
return ($returnthis);
}
ob_start("callback");
?>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
:(<br>
:)<br>
;)<br>
:$<br>
:x<br>
:beer:<br>
:beer2:<br>
8)<br>
x(<br>
(6)<br>
:D<br>
:flirt:<br>
:/<br>
:idea:<br>
:DD<br>
:oo<br>
:?<br>
:stud:<br>
:P
</body>
</html>
<?php
ob_end_flush();
?>
Men då blir det så här http://silfver.se/test.php
Varför blir det så?
Edit: Bry dig inte om att bilden inte syns, för bilderna är inte upplagda. Men den ska ändå visa mer än en bild?
Varför böka med regexp när det ändå är såpass enkla saker som ska replaceas? Byt ut din funktion mot denna så fungerar det:
function callback($buffer)
{
$returnthis = str_replace(":(", "<img src='img/frown.gif'>", $buffer);
$returnthis = str_replace(":)", "<img src='img/smile.gif'>", $returnthis);
$returnthis = str_replace(";)", "<img src='img/wink.gif'>", $returnthis);
$returnthis = str_replace(":$", "<img src='img/shame.gif'>", $returnthis);
$returnthis = str_replace(":x", "<img src='img/angry.gif'>", $returnthis);
$returnthis = str_replace(":beer:", "<img src='img/beergrin.gif'>", $returnthis);
$returnthis = str_replace(":beer2:", "<img src='img/bire.gif'>", $returnthis);
$returnthis = str_replace("8)", "<img src='img/cool.gif'>", $returnthis);
$returnthis = str_replace("x(", "<img src='img/dead.gif'>", $returnthis);
$returnthis = str_replace("(6)", "<img src='img/devel.gif'>", $returnthis);
$returnthis = str_replace(":D", "<img src='img/supergrin.gif'>", $returnthis);
$returnthis = str_replace(":flirt:", "<img src='img/dead.gif'>", $returnthis);
$returnthis = str_replace(":/", "<img src='img/dead.gif'>", $returnthis);
$returnthis = str_replace(":idea:", "<img src='img/dead.gif'>", $returnthis);
$returnthis = str_replace(":DD", "<img src='img/laugh.gif'>", $returnthis);
$returnthis = str_replace(":oo", "<img src='img/look.gif'>", $returnthis);
$returnthis = str_replace(":?", "<img src='img/quest.gif'>", $returnthis);
$returnthis = str_replace(":stud:", "<img src='img/stud.gif'>", $returnthis);
$returnthis = str_replace(":P", "<img src='img/tongue.gif'>", $returnthis);
return ($returnthis);
}
Peeer Tack :) Det funkade faktiskt!
Peeer skrev:
Varför böka med regexp när det ändå är såpass enkla saker som ska replaceas? Byt ut din funktion mot denna så fungerar det:
function callback($buffer) { $returnthis = str_replace(":(", "<img src='img/frown.gif'>", $buffer); $returnthis = str_replace(":)", "<img src='img/smile.gif'>", $returnthis); $returnthis = str_replace(";)", "<img src='img/wink.gif'>", $returnthis); $returnthis = str_replace(":$", "<img src='img/shame.gif'>", $returnthis); $returnthis = str_replace(":x", "<img src='img/angry.gif'>", $returnthis); $returnthis = str_replace(":beer:", "<img src='img/beergrin.gif'>", $returnthis); $returnthis = str_replace(":beer2:", "<img src='img/bire.gif'>", $returnthis); $returnthis = str_replace("8)", "<img src='img/cool.gif'>", $returnthis); $returnthis = str_replace("x(", "<img src='img/dead.gif'>", $returnthis); $returnthis = str_replace("(6)", "<img src='img/devel.gif'>", $returnthis); $returnthis = str_replace(":D", "<img src='img/supergrin.gif'>", $returnthis); $returnthis = str_replace(":flirt:", "<img src='img/dead.gif'>", $returnthis); $returnthis = str_replace(":/", "<img src='img/dead.gif'>", $returnthis); $returnthis = str_replace(":idea:", "<img src='img/dead.gif'>", $returnthis); $returnthis = str_replace(":DD", "<img src='img/laugh.gif'>", $returnthis); $returnthis = str_replace(":oo", "<img src='img/look.gif'>", $returnthis); $returnthis = str_replace(":?", "<img src='img/quest.gif'>", $returnthis); $returnthis = str_replace(":stud:", "<img src='img/stud.gif'>", $returnthis); $returnthis = str_replace(":P", "<img src='img/tongue.gif'>", $returnthis); return ($returnthis); }
Jag satt och letade efter ett skript som ersätter smileykoder med en bild. Fann denna tråd och funktionen ovan föll mig i smaken. Jag utgår ifrån att man kan använda denna funktion mot en databas där jag har alla smileykoder och tecken lagrade och sedan loopa ut alla kombinationer till str_replace? Funkis? :)
Great!
Fick det att fungera när jag körde med statisk information i funktionen. Sedan när jag kopplade den mot databasen skriver den inte ut någonting. Sitter och felsöker men tänkte slänga ut koden så kanske någon annan ser ett fel som jag inte har upptäckt ännu! :)
function showSmiley($returnthis) {
$sqlSelect = "SELECT code, path, filename FROM tblforumsmiley";
$RSobj = mysql_query($sqlSelect) or die (mysql_error());
while($smiley = mysql_fetch_array($RSobj)) {
$returnthis = str_replace("".$smiley['code']."", "<img src=\"".$smiley['path'].$smiley['filename']."\"", $returnthis);
}
return $returnthis;
}
Du har glömt ett /> i image-taggen, men det var väl inte ditt problem riktigt...
Vad har "". och ."" för funktion egentligen?
Min teori är att $returnthis blir överskriven succesivt av varje ny smileykod vilket får till följd att smileykoderna "äts upp"...
Tittar man på det ursprungliga kodexemplet så är den första variabeln i funktionen str_replace inte samma som för de som kommer efter.