---
title: "Lägga in bild vid smilie"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/97990-lägga-in-bild-vid-smilie"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "silfver"
published: "2004-02-22T17:56:49.000Z"
updated: "2005-08-10T11:01:45.000Z"
replies: 28
views: 1104
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/97990-lägga-in-bild-vid-smilie"
---

# Lägga in bild vid smilie

_Sida 1 av 2._

## #1 — silfver, 2004-02-22T17:56Z

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.

Permalänk: https://www.webforum.nu/p/97990

## #2 — Web-Tor, 2004-02-22T18:55Z

1\. <http://www.webforum.nu/showthread.php?s=&postid=538182#post538182>

2\. <http://www.webforum.nu/faq.php?faq=about_wf#rules_contact>

Permalänk: https://www.webforum.nu/p/1284568

## #3 — silfver, 2004-02-22T19:11Z

Tackar så mycket Web-Tor! Visste inte riktigt vad jag skulle söka efter, annars brukar jag göra det ;)

Permalänk: https://www.webforum.nu/p/1284578

## #4 — silfver, 2004-02-22T19:21Z

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
<?php
$smilie = eregi_replace(":)", "<img src=\"img/smile.gif\">", $smilie);
$smilie = eregi_replace(":(", "<img src=\"img/smile/smiley_=(.gif\">", $smilie);
?>
```

Permalänk: https://www.webforum.nu/p/1284580

## #5 — Fuel, 2004-02-22T20:14Z

så här kanske ?

```php
$message = str_replace (":)", "<img src=\"/images/forum/icons/smiley.gif\">", $message);
```

.  :birp

Permalänk: https://www.webforum.nu/p/1284594

## #6 — silfver, 2004-02-22T20:18Z

Hehe!

Vågar inte testa, men en polare fick det här att fungera:

```php
<?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

Permalänk: https://www.webforum.nu/p/1284597

## #7 — Pedda, 2004-02-22T21:30Z

Så här ser det ut i ett script jag har gjort, så det vet jag att fungerar.

```php
$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å. :)

Permalänk: https://www.webforum.nu/p/1284615

## #8 — silfver, 2004-02-23T05:49Z

**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...

Permalänk: https://www.webforum.nu/p/1284716

## #9 — fiddler, 2004-02-23T06:10Z

> **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.

```php
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:

```php
print(smiley($message))
```

Permalänk: https://www.webforum.nu/p/1284718

## #10 — silfver, 2004-02-23T06:14Z

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>

Permalänk: https://www.webforum.nu/p/1284719

## #11 — fiddler, 2004-02-23T06:39Z

Ok, nu förstod jag vad du var ute efter :)  :)  :) 

Bygg ut din kod såhär:

```php
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.

Permalänk: https://www.webforum.nu/p/1284722

## #12 — silfver, 2004-02-23T13:44Z

Underbart! Funkar prima! :D

Permalänk: https://www.webforum.nu/p/1284920

## #13 — silfver, 2004-02-23T16:10Z

Hm. Eller kanske inte ändå. Försökte skriva in alla gubbar på en gång:

```php
<?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?

Permalänk: https://www.webforum.nu/p/1284966

## #14 — Peeer, 2004-02-23T16:25Z

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);

}
```

Permalänk: https://www.webforum.nu/p/1284975

## #15 — silfver, 2004-02-23T16:28Z

**Peeer** Tack :) Det funkade faktiskt!

Permalänk: https://www.webforum.nu/p/1284977

## #16 — lillebror, 2005-08-10T08:47Z

> **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? :)

Permalänk: https://www.webforum.nu/p/1655416

## #17 — fiddler, 2005-08-10T09:15Z

> **lillebror skrev:**
>
> Funkis? :)

Jepp!  :)

Permalänk: https://www.webforum.nu/p/1655422

## #18 — lillebror, 2005-08-10T09:20Z

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;
}
```

Permalänk: https://www.webforum.nu/p/1655424

## #19 — fiddler, 2005-08-10T09:40Z

Du har glömt ett /\> i image-taggen, men det var väl inte ditt problem riktigt...
Vad har "". och ."" för funktion egentligen?

Permalänk: https://www.webforum.nu/p/1655440

## #20 — lillebror, 2005-08-10T09:41Z

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.

Permalänk: https://www.webforum.nu/p/1655442

---

Tråden på webben: https://www.webforum.nu/amne/php/97990-lägga-in-bild-vid-smilie  
Nästa sida: https://www.webforum.nu/amne/php/97990-lägga-in-bild-vid-smilie/page2.md
