Avatar billede nizo Nybegynder
18. oktober 2005 - 21:58 Der er 9 kommentarer og
1 løsning

Problem med en function

Hej

Jeg har en function som burde vise smileys

function emotes($string)
{
  $string=eregi_replace(":)", '<img alt=":)" title="Glad :)" src="img/emotes/glad.gif" />', $string);
  $string=eregi_replace(":D", '<img alt=":D" title="Happy :D" src="img/emotes/happy.gif" />', $string);
  $string=eregi_replace(":\(", '<img alt=":(" title="unhappy :D" src="img/emotes/unhappy.gif" />', $string);
  $string=eregi_replace(":\|", '<img alt=":(" title="unhappy :D" src="img/emotes/stare.gif" />', $string);
 
  return $string;

}


der sker ingenting, gør jeg noget forkert? eller kan man overhovedet lave en function ud af det?
Naar jeg udskriver function skriver jeg bare <?php emotes($text); ?>
Avatar billede jaw Nybegynder
18. oktober 2005 - 22:01 #1
Burde nok virke, men jeg ville helt sikkert bruge str_replace() i stedet for. Det er meget hurtigere end en regulær udskiftning.

Og du skal vel udskrive den også, men det gør du måske et sted vi ikke kan se?
Avatar billede nizo Nybegynder
18. oktober 2005 - 22:03 #2
jeg udskriver den en side der includer den fil hvor funktionen er i.. som sagt bruger jeg emotes($text); til det..
Avatar billede erikjacobsen Ekspert
18. oktober 2005 - 22:06 #3
I hvert fald;

  <?php print emotes($text); ?>

og den første skal vel være

  $string=eregi_replace(":\)", '<img alt=":)" title="Glad :)" src="img/emotes/glad.gif" />', $string);
Avatar billede jaw Nybegynder
18. oktober 2005 - 22:11 #4
Min pointe var præcis som erik skriver, at du jo enten skal echo eller print emotes($text). Det er jo ikke som sådan $text der bliver ændret, så ved at bruge $text senere hen på siden vil du ikke hav de ændringer.
Avatar billede nizo Nybegynder
18. oktober 2005 - 22:11 #5
det første virker fint uden backslash.. Jeg glemte at udskrive den rigtigt, jeg satte den bare ind i koden.. erikjacobsen, giv et svar :)
Avatar billede nizo Nybegynder
18. oktober 2005 - 22:11 #6
jaw, giv ogsaa et svar, then
Avatar billede jaw Nybegynder
18. oktober 2005 - 22:13 #7
Ok :)
Avatar billede erikjacobsen Ekspert
18. oktober 2005 - 22:13 #8
Jeg samler slet ikke på point, tak. Og enig omkring str_replace, eller bedre http://php.net/strtr hvor du kan gøre det med eet kald af strtr
Avatar billede stalle Nybegynder
18. oktober 2005 - 22:55 #9
Jeg benytter preg_replace()

$smileys_txt = array("/:-\)|:\)/","/:-D|:-d|:d|:D/")
$smileys_pic = array("<img src=\"smileys/smile.png\" alt=\"\">","<img src=\"smileys/teeth.png\" alt=\"\">")

$tekst = preg_replace($smileys_txt, $smileys_pic, $tekst);
Avatar billede erikjacobsen Ekspert
18. oktober 2005 - 22:58 #10
Hvorfor så ikke:

$smileys_txt = array("/:-?\)/","/:-?d/i")
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester