[php] Problem med variablar och redeclare.

Permalänk
Medlem

[php] Problem med variablar och redeclare.

Hej, vet inte om min topic var helt åt helsike, men jag kom tyvärr inte på något annat som skulle kunna säga det bättre.

Sitter och gör en shoutbox till 2 killar, och den är snart klar. Det stadie jag sitter med nu är att byta ut ': )' till en bild istället.
Enda sättet jag får det att funka på är som koden ser ut nedan, men då visas 1 post och sen står det :

Fatal error: Cannot redeclare smileys() (previously declared in */shoutout.php:18) in */shoutout.php on line 18
Line 18 i koden nedan är "function smileys(..."

Forumet bytte dessutom ut min ': )' i koden till den grafiska smileyn här om ni undrar varför det står så.

Mitt problem ligger nog som jag antar att felmeddelandet antyder, att jag inte kan deklarera $wrap 2 gånger, vilket jag gjort iom smileys-grejjen och wordwrappen.
Har lekt lite med att döpa om en del och sen köra $blabla = $blabla2 osv, men det vill sig inte ändå. Någon som har något tips på hur jag ska kunna gå vidare?

(Jag är ingen större stjärna på detta, håller fortfarande på att lära mig ganska mycket, vilket min kod säkert vittnar om.)

Kod:

require("config.php"); $getposts = mysql_query("SELECT * FROM shoutbox ORDER BY id DESC LIMIT 10"); while($r=mysql_fetch_array($getposts)){ function smileys($wrap) { $wrap = str_replace (':)', '<img src="gfx/smilies/smile.gif" />', $wrap); return $wrap; } $wrap = wordwrap($r['content'], 35, "<br />", 1); $text = smileys($wrap); echo "<div class='shout'> <u>$r[date] av <strong>$r[author]</strong></u><br /> $text</div> <hr style='border:#666666 1px solid;'>"; }

Visa signatur

Min signatur, inte din, MIN.
Bort med tassarna O.o

Permalänk
Medlem

Du deklarerar funktionen inom en loop.
Flytta ut funktionen och sätt den efter raden med require("config.php");
Du kan inte deklarera en funktion flera gånger.

Permalänk
Medlem

Om jag fattade det hela rätt vill du i hela texten byta ut t ex : ) och : D mot osv...

Det kan du åstakomma med strtr.

<?php $trans = array(": )" => "<img src='bild.png'", ": D" => "<img src='bild2.png'); $wrap = strtr($wrap, $trans); ?>

(Hoppas jag fattade rätt..)

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av gagg
Du deklarerar funktionen inom en loop.
Flytta ut funktionen och sätt den efter raden med require("config.php");
Du kan inte deklarera en funktion flera gånger.

Ahhh. Tack så hemskt mycket. Måste tänkt så djuriskt snett där
Det fungerar nu. Tack ännu en gång.

Kejsarn, njae. Jag ville att när folk skriver ": )" så ska det bli en i deras post.

Visa signatur

Min signatur, inte din, MIN.
Bort med tassarna O.o