Home  »     »     »     »  How to replace French accented characters with English character equivalents using php?

How to replace French accented characters with English character equivalents using php?

Tuesday, July 16, 2013


Script for replacing french accented characters with English character equivalents during the generation of SEO urls

Usually we build SEO friendly urls by replacing the French characters with their English equivalent. I had tried several ways to do this, but failed. So just created a simple small function for this.

The function simply does the following:

First it generates 2 arrays, One array will hold the required urlencoded equivalents of the french accented charactes and second array will hold the English characters.

Next step is to generate a url encoded string ofcharacters from the french string

Next, the function will replace the urlencoded equivalents in the string with corresponding English character.

Function is given below



function replaceFrenchAccents($frenchStr){

$urlencoded_str= urlencode( $frenchStr );

//french character array. You can add more values to this
// You should add values like 'FrenchCharacter' => 'EnglishEquivalent'
$frenchChars = array(
'Š'=>'S', 'š'=>'s', 'Ð'=>'Dj','Ž'=>'Z', 'ž'=>'z', 'À'=>'A', 'Á'=>'A', 'Â'=>'A', 'Ã'=>'A', 'Ä'=>'A',
'Å'=>'A', 'Æ'=>'A', 'Ç'=>'C', 'È'=>'E', 'É'=>'E', 'Ê'=>'E', 'Ë'=>'E', 'Ì'=>'I', 'Í'=>'I', 'Î'=>'I',
'Ï'=>'I', 'Ñ'=>'N', 'Ò'=>'O', 'Ó'=>'O', 'Ô'=>'O', 'Õ'=>'O', 'Ö'=>'O', 'Ø'=>'O', 'Ù'=>'U', 'Ú'=>'U',
'Û'=>'U', 'Ü'=>'U', 'Ý'=>'Y', 'Þ'=>'B', 'ß'=>'Ss','à'=>'a', 'á'=>'a', 'â'=>'a', 'ã'=>'a', 'ä'=>'a',
'å'=>'a', 'æ'=>'a', 'ç'=>'c', 'è'=>'e', 'é'=>'e', 'ê'=>'e', 'ë'=>'e', 'ì'=>'i', 'í'=>'i', 'î'=>'i',
'ï'=>'i', 'ð'=>'o', 'ñ'=>'n', 'ò'=>'o', 'ó'=>'o', 'ô'=>'o', 'õ'=>'o', 'ö'=>'o', 'ø'=>'o', 'ù'=>'u',
'ú'=>'u', 'û'=>'u', 'ý'=>'y', 'ý'=>'y', 'þ'=>'b', 'ÿ'=>'y', 'ƒ'=>'f'
);

//initialising find and replace array
$arrfind_enc=array();
$arrrep_str=array();

//iterating through french character aray and filling the find replace array
foreach( $frenchChars as $key=>$val ){

$arrfind_enc[]=urlencode(trim($key));
$arrrep_str[]= $val;

}

$arrfind_enc[count($arrfind_enc)]="+";
$arrrep_str[count($arrrep_str)]="-";

return( str_replace( $arrfind_enc , $arrrep_str , $urlencoded_str ) );

}



$fr_str="dispose son partenaire non marié pendant la durée des afin de rester à ses côtés aux États-Unis";

//calling function
echo( replaceFrenchAccents( $fr_str ) );

//output : the above function will replace french characters and output the following text
// dispose-son-partenaire-non-marie-pendant-la-duree-des-afin-de-rester-a-ses-cotes-aux-Etats-Unis



Hope this helped some one. Try it and post your comments.

You may also try Php's strstr()
strtr - check http://us3.php.net/strtr for more info



How to link to this page?
If you wish to link to this page from your website, simply Copy and paste the above HTML code to your web page. It will appear on your page as:
How to replace French accented characters with English character equivalents using php?.




Share this!




comments powered by Disqus

This Weeks 7 Popular Posts


Subscribe to Recent Posts by Email
Stay connected to CROZOOM with regular Email notices of new Techie articles and IT Jobs. Updates will be delivered to your Inbox as soon as they are posted online.

Enter Your Email Address:  

Delivered by FeedBurner   RSS Feed

Search this Blog   



Urgent Openings for PHP trainees, Andriod / IOS developers and PHP developers in Kochi Trivandrum Calicut and Bangalore. Please Send Your updated resumes to recruit.vo@gmail.com   Read more »