warum verwendest du nicht einfach ein str_replace?
$name = str_replace(' ','_',$name);
edit:
arg...bin blöd...sry mein fehler ... gesehen -.-
edit:
der fehler liegt in den anfangszeilen
if(strlen($text) < 33)
return $text;
wenn der eingegebene Text kleiner ist als 33 zeichen, dann wird er einfach wieder zurückgegeben