Well adding an @ in front of utf8_decode just supresses the error message. If the function is not found you will get no return value and thus string will contain nothing.
So your problem is the missing utf8_decode. According to the manual at http://www.php.net/manual/en/function.utf8-decode.php
this function should be available in all PHP4 and PHP5 versions. So it looks like your PHP installation is broken.
According to a post at http://www.faqts.com/knowledge_base/view.phtml/aid/357/fid/17
you maybe need to compile PHP with --with-xml but this seems to be PHP3 related. An blog entry at http://www.letitshine.org/?p=2
suggests to install a php-xml package (if available for your distribution)
So to sum it up: you need that utf8_decode function!