Efficient Strip Special Characters
Regex101.com seems to think you can simply combine \s{2,} and [\t\n] into \s{2,}[\t\n] and it should have the same effect:


$string = preg_replace(array('/\s{2,}/', '/[\t\n]/'), ' ', $string);



into:

$string = preg_replace('/\s{2,}[\t\n]/', ' ', $string);




You should add whitespace between your binary operators in this line:


$string = iconv("Windows-1252","UTF-8",urldecode($string));



into:

$string = iconv("Windows-1252", "UTF-8", urldecode($string));


(I'm not personally familiar with iconv, so I can't give too much of a review on your usage of the function.)



Your third regex could be slimmed down from a-zA-Z into a-z with an case insensitive search.


return preg_replace('/[^a-zA-Z0-9Ã§&amp;-©‚Âƒâ€˜\s]/', '', $string);



return preg_replace('/[^a-z0-9Ã§&amp;-©‚Âƒâ€˜\s]/i', '', $string);




In the same way you use a preg_replace with an array, you combine the first pair, with the secondary statement into one line if you like.