Tobias Perschon: preg_replace mit PHP code

Beitrag lesen

hi!
warum funktioniert folgender code nicht, die größe wird nicht geändert da $size kein zahlenwert ist, settype hilft aber nicht... (egal ob float oder int)

ergebnis ist das [size=30]groß[/size]
die ausgabe
<span style='font-size:30pt'>groß</span>
erzeugt.
also greift die if überprüfung irgendwie nicht...

ich glaub das es was mit ' und " zu tun hat...
ich hab aber schon versucht die sache umzudrehen hat aber nicht geholfen...
was hab ich falsch gemacht?

CODE:

function sizecheck($size){
 settype($size, "float");
 if ($size > 18) $size = 18;
 return $size;
}

if($xtra_size) $text = preg_replace("/[size=(.*?)](.*?)[/size]/i",'<span style='font-size:'.sizecheck('$1').'pt;'>$2</span>',$text);