Ich habe mir das nun so zurecht gelegt, scheint seinen Dienst zu erfüllen.

PHP-Code:
function stripAscii($text

    
// First, remove all "weird" characters. 
    
$text preg_replace("/[^a-zA-Z0-9öäüÖÄÜß\\-_?!&[\\]().,;:+=#*~@\\/\\\\'\"><\\s]/"""$text); 
    
//$text = preg_replace("cpN/cRo", "", $text); 
    //$text = preg_replace("cpN!", "", $text); 
    //$text = str_replace (chr(20), " ", $text); 
     
while ($text != $oldtext) { 
        
$oldtext $text
        
// Remove all repeating umlauts 
        
$text preg_replace("/[öäüÖÄÜß]{2,}/"""$text); 
        
// Remove all "free" umlauts, not enclosed by other word chars 
        
$text preg_replace("/(^|\\s)[öäüÖÄÜß]+(\\s|$)/sm"""$text); 
    } 

    
$text preg_replace("/ {2,}/"""$text); 
    
$text preg_replace("#[\r\n]{4,}#""\r\n\r\n"$text);


    
$text preg_replace('/([^\x21-\x7E\xA9\xAE\r\n\s])+/'''$text);
    
$text nl2br($text);
    
$text preg_replace('/\s{2,}/'''$text);
    
//$text = preg_replace('/(\<br \/\>){3,}/', '<br /><br />', $text);


    
$text trim($text); 


    
// Remove trailing spaces at end of line 
   // $text = preg_replace("/([\\t ]+)(\\s$)/m", "\r2", $text); 

    //$text = preg_replace("/\\r1{2,}/", "", $text); 
    //$text = preg_replace('#(?<!\r\n)\r\n(?!\r\n)#', ' ', $text); 
    
return $text