Puoi sostituire quell'ammasso di str_replace con una sola:

Codice PHP:
$cercato   = array("'",'ì',"è","ò","ù","à","è",'"',".",",",":",";");
$sostituto = array(" ","i","e","o","u","a","e","" ,"-","-","-","-");
$dirty str_replace ($cercato$sostituto$dirty);