Mejorar codigo para formulario de opiniones

Tengo el sguiente codigo php para recoger la informacion de un formulario de opiniones:

$pParametros = FALSE;
if(count($_GET) != 0){
$pParametros = $_GET;
}elseif(count($_POST) != 0){
$pParametros = $_POST;
}
if($pParametros != FALSE){
$svariable = $pParametros['dato del fomulario'];
$svariable=str_replace('ñ','&ntilde',$svariable);
$svariable=str_replace('Ñ','&Ntilde',$svariable);
$svariable=str_replace('á','&aacute',$svariable);
$svariable=str_replace('Á','&Aacute',$svariable);
$svariable=str_replace('é','&eacute',$svariable);
$svariable=str_replace('É','&Eacute',$svariable);
$svariable=str_replace('í','&iacute',$svariable);
$svariable=str_replace('Í','&Iacute',$svariable);
$svariable=str_replace('ó','&oacute',$svariable);
$svariable=str_replace('Ó','&Oacute',$svariable);
$svariable=str_replace('ú','&uacute',$svariable);
$svariable=str_replace('Ú','&uacute',$svariable);
$svariable=str_replace('Ý','&Yacute',$svariable);
$svariable=str_replace('ý','&yacute',$svariable);
$svariable=str_replace('à','&agrave',$svariable);
$svariable=str_replace('À','&Agrave',$svariable);
$svariable=str_replace('è','&egrave',$svariable);
$svariable=str_replace('È','&Egrave',$svariable);
$svariable=str_replace('ì','&igrave',$svariable);
$svariable=str_replace('Ì','&Igrave',$svariable);
$svariable=str_replace('ò','&ograve',$svariable);
$svariable=str_replace('Ò','&Ograve',$svariable);
$svariable=str_replace('ù','&ugrave',$svariable);
$svariable=str_replace('Ù','&ugrave',$svariable);
$svariable=str_replace('ä','&auml',$svariable);
$svariable=str_replace('Ä','&Auml',$svariable);
$svariable=str_replace('ë','&euml',$svariable);
$svariable=str_replace('Ë','&Euml',$svariable);
$svariable=str_replace('ï','&iuml',$svariable);
$svariable=str_replace('Ï','&Iuml',$svariable);
$svariable=str_replace('ö','&ouml',$svariable);
$svariable=str_replace('Ö','&Ouml',$svariable);
$svariable=str_replace('ü','&uuml',$svariable);
$svariable=str_replace('Ü','&uuml',$svariable);
$svariable=str_replace('ÿ','&yuml',$svariable);
$svariable=str_replace('¿','&#191',$svariable);
$svariable=str_replace('¡','&#161',$svariable);
$svariable=str_replace('?','&euro',$svariable);
$svariable=str_replace('ç','&ccedil',$svariable);
$svariable=str_replace('Ç','&Ccedil',$svariable);
$svariable=str_replace("´",'&#39',$svariable);

El objetivo es evitar la incompatibilidad de los simbolos especiales y acentos al recoger el formulario en la base de datos, estos se convierten al codigo html y al volcar la consulta desde la base de datos me aseguro de que la palabra quede escrita correctamente, en este sentido el codigo funciona perfectamente, pero mi duda es si no es un poco excesivo pedir al servidor que me revise el comentario que puede tener 1000 caracteres las 42 veces que se lo hago revisar y si no habria una manera mas sencilla de hacerlo.
Gracias.
Sustituye tooooooooodo eso por esto:
<?php
$search = array("Á", "á", "É", "é", "Í", "í", "Ó", "ó", "Ú", "ú");
$replace = array("&Aacute", "&aacute", "&Eacute", "&eacute", "&Iacute", "&iacute", "&Oacute", "&oacute", "&Uacute", "&uacute");
$svariable = str_replace($search, $replace, $svariable);
?>
Sólo te queda añadir otros caracteres.
Muchas gracias, funciona perfectamente y queda un codigo mucho mas ordenado, aunque supongo que el tiempo de respuesta del servidor sera parecido ¿no?