How To Clean Special Characters From PHP String
If you are looking for the PHP special characters clean function then this post might be useful for you. This function can used to remove special character as well as able to replace specific character with other equivalent character or string.
Here is detailed explanation of function:
$specialCharacters Array: This array used to replace special character with other character or string. if you want to interchange (+) with (plus) then you need to specify in the array. You can add/remove array element according to your requirement.
strtr function: This function used to replace other language special characters to plain English character. You can remove this line safely but ensure before that these characters not in your string and you don’t need to remove them.
Last 4 line used to remove other unknown unwanted special characters.
[sourcecode language='php']
function just_clean($string)
{
// Replace other special chars
$specialCharacters = array(
‘#’ => ”,
‘$’ => ”,
‘%’ => ”,
‘&’ => ”,
‘@’ => ”,
‘.’ => ”,
‘€’ => ”,
‘+’ => ”,
‘=’ => ”,
‘§’ => ”,
‘\\’ => ”,
‘/’ => ”,
);
while (list($character, $replacement) = each($specialCharacters)) {
$string = str_replace($character, '-' . $replacement . '-', $string);
}
$string = strtr($string,
"ÀÁÂÃÄÅ? áâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ",
"AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn"
);
// Remove all remaining other unknown characters
$string = preg_replace('/[^a-zA-Z0-9\-]/', ' ', $string);
$string = preg_replace('/^[\-]+/', '', $string);
$string = preg_replace('/[\-]+$/', '', $string);
$string = preg_replace('/[\-]{2,}/', ' ', $string);
return $string;
}
[/sourcecode]
Read Related Posts
You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

June 26th, 2008 at 9:13 am
[...] How To Clean Special Characters From PHP String [...]
December 18th, 2008 at 5:04 am
Thanks for this post.
Can you send me the full source code in plain text document (Notepad)? The code is malformed when I copy and paste from this post.
Thanks!
December 18th, 2008 at 5:39 am
Thanks to inform me for malformed code. I have corrected formatting issue. You can now copy code to clip board easily. Let me know if you still have trouble copying code.
Thanks
December 18th, 2008 at 11:34 pm
Hi
Thanks for making the changes.
It looks like on line 17 still poses as a problem?
December 19th, 2008 at 2:17 am
Yes, you can remove . Thanks
February 27th, 2009 at 7:52 am
It looks like on line 17 the website didn’t filter the post code since it has some raw HTML on it. “"
Removing it solved the problem but now one persists.
I entered: "Ãgua do Lúso" and the returned string was: "n guaOdoOLn so"
February 27th, 2009 at 7:54 am
PS: WordPress ate what I said between the first quotes.
There was suposed to be there:
LowerThan /code GreaterThan
May 4th, 2009 at 2:41 am
Thank you, this was very useful for turning strings into valid filenames.
August 14th, 2009 at 1:22 am
Thank you very much!! This code snippet helped me.
August 20th, 2009 at 10:48 pm
Thanks a lot! This has solved my problem.
What could I say “Bala Krishna ki jai”
September 9th, 2009 at 7:57 pm
This is very useful
thank you for share
April 15th, 2010 at 8:00 pm
Very useful information.But whenever you use to explain codes, provide necessary examples.
May 24th, 2010 at 8:19 pm
useful code ……
June 30th, 2010 at 6:37 pm
thanks! i’m looking for this. when i scrape i always get those weird characters.
September 25th, 2010 at 2:35 am
Thanks for sharing, some codes showing error while saving.
January 17th, 2011 at 2:06 pm
Just to say that I had problems cut&pasting the code from Firefox – it messed up the special characters – but when I viewed the page in Chrome it displayed fine.
January 23rd, 2011 at 2:03 pm
here’s an array or error to correct letter i’ve started collecting.
i messed up with my character encoding into mySql database and had to figure out the correlation.
hope this saves someone else the time.
$weirdArray=array(array(“ü”,”ü”), array(“ö”,”ö”), array(“ø”,”ø”), array(“é”,”é”), array(“ß”,”ss”), array(“Ã¥”, “å”) , array(“ä”, “ä”), array(“æ”, “æ”), array(“Ã…”, “Å”), array(“Ä”, “Ä”), array(“Æ”, “Æ”), array(“æ”,”æ”), array(“é”,”é”), array(“ø”,”ø”), array(“Æ”,”Æ”), array(“á”,”á”), array(“è”,”è”), array(“ı”,”?”), array(“Ö”, “Ö”), array(“Ø”,”Ø”), array(“ô”, “”), array(“”, “”), array(“ó”, “ó”), array(“ð”, “ð”), array(“º “, “”), array(“’”, “”), array(“Â’”, “”));
January 23rd, 2011 at 2:04 pm
idk why my quotations just went all wacky
March 20th, 2011 at 10:34 pm
I need to remove/replace all special language charakters, to store file safely.
I tried this code for testing, but it doesn’t work.
Where could be the problem?
$name = $_FILES['file']['name'];
$name = mb_convert_case($name, MB_CASE_LOWER, “UTF-8″);
$name = strtr($name, “áä??é?í???óôš?ú?ýž”, “aacdeeillnoostuuyz”);
Example of what this code does:
from: TÉŠ?OVACÍ SÚBOR ?
to: tsn?a??ovacst ssubor yz
It should be:
to: testovaci subor l
April 11th, 2011 at 1:35 am
Code has problem with character “\”.
April 21st, 2011 at 7:51 am
@Boys Arab
You have to unescape it with another slash.
It should be ‘\\’
May 23rd, 2011 at 10:08 pm
Thank you very much.I got my problem solved with this function.
August 12th, 2011 at 1:37 pm
trim() PHP function can clean string too.
August 17th, 2011 at 1:19 pm
@boys arab
you can use
preg_replace(‘/[^\x{0600}-\x{06FF}A-Za-z !@#$%^&*()]/u’,”, $text )
to clean text with arabic chars
thanks
September 13th, 2011 at 2:10 am
please remove the special charecter from my mailbox
September 13th, 2011 at 2:12 am
remove the special charecter from my mail box
March 20th, 2012 at 2:07 pm
Remove all non-ascii characters in one line
$string = preg_replace(‘/[^(\x20-\x7F)]*/’,”, $string);
ta-da