這就是我想出了,非常簡單和原始的字必須是相同的長度改變的話,如果他們有不同的長度,將只使用改變了一句話:
<?php
function correct_spelling($text) {
$text = 'FUcK';
$a = array('/\bsteph\b/i', '/\bshit\b/i', '/\bfuck\b/i', "/\bfucken\b/i", '/\benormeous\b/i');
$b = array('Stephane', 'sh*t', 'f*ck', "f*ckin'", 'enormous');
$filteredText = preg_replace($a, $b, $text);
$cleanedText = $filteredText;
if (strlen($text) == strlen($filteredText)) {
$count = strlen($text);
$cleanedText = "";
for ($i=0; $i < $count; $i++) {
if (ctype_upper($text[$i]) && $filteredText[$i] != '*') {
$cleanedText .= $text[$i];
} else {
$cleanedText .= $filteredText[$i];
}
}
}
return $cleanedText;
}
?>
這裏有一個獨立的例子,你可以在一個空的PHP文件粘貼:
$text = 'FUcK';
$a = array('/\bsteph\b/i', '/\bshit\b/i', '/\bfuck\b/i', "/\bfucken\b/i", '/\benormeous\b/i');
$b = array('Stephane', 'sh*t', 'f*ck', "f*ckin'", 'enormous');
$filteredText = preg_replace($a, $b, $text);
$cleanedText = $filteredText;
if (strlen($text) == strlen($filteredText)) {
$count = strlen($text);
$cleanedText = "";
for ($i=0; $i < $count; $i++) {
if (ctype_upper($text[$i]) && $filteredText[$i] != '*') {
$cleanedText .= $text[$i];
} else {
$cleanedText .= $filteredText[$i];
}
}
}
echo $cleanedText;
絕對沒有任何目的的在您的文章中超凡脫俗,除了得罪。我猜這對一些人很有趣。您可能想要查看[是不錯的政策](http://stackoverflow.com/help/be-nice),並調整帖子。只是爲了好。 – Mogsdad