Character Mapping (substitute) - need faster
Posted: Fri Mar 06, 2009 2:03 pm
Here is my current script to replace "non-standard" (non-US-English) characters with their "standard" counterparts.
Unfortunately, this seems to slow down my script considerably.
Any suggestions?
(FYI, WITHOUT this function, my script imports 70,000 records per minute; with the function included, it imports only 2,000 records per minute).
(Added: Thanks for suggesting the use of the "code" tags.)
Unfortunately, this seems to slow down my script considerably.
Any suggestions?
(FYI, WITHOUT this function, my script imports 70,000 records per minute; with the function included, it imports only 2,000 records per minute).
Code: Select all
<?php
function fn_character_map($source_text)
{
// Subsitutes standard characters for the accented and other special characters.
// There are 321 source and replacement strings, in an array.
$map_from = array
(
"", "–", "—", "€", "‚", "ƒ", "„", "…", "†", "‡", "ˆ", "‰", "Š", "‹",
"Œ", "Ž", "‘", "’", "“", "”", "•", "–", "—", "˜", "™", "š", "›",
"œ", "ž", "Ÿ", "¡", "¢", "£", "¤", "¥", "¦", "§", "¨", "©", "ª",
"«", "¬", "­", "®", "¯", "°", "±", "²", "³", "´", "µ", "¶", "·",
"¸", "¹", "º", "»", "¼", "½", "¾", "¿", "À", "Á", "Â", "Ã", "Ä",
"Å", "Æ", "Ç", "È", "É", "Ê", "Ë", "Ì", "Í", "Î", "Ï", "Ð", "Ñ",
"Ò", "Ó", "Ô", "Õ", "Ö", "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "Þ",
"ß", "à", "á", "â", "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë",
"ì", "í", "î", "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø",
"ù", "ú", "û", "ü", "ý", "þ", "ÿ", "Á", "á", "Â", "â", "Æ",
"æ", "À", "à", "Å", "å", "Ã", "ã", "Ä", "ä", "„", "Ç",
"ç", "¸", "ˆ", "É", "é", "Ê", "ê", "È", "è", "Ð", "ð",
"Ë", "ë", "ƒ", "Í", "í", "Î", "î", "¡", "Ì", "ì", "¿",
"Ï", "ï", "«", "“", "‘", "¯", "¬", "Ñ", "ñ", "Ó", "ó",
"Ô", "ô", "Œ", "œ", "Ò", "ò", "ª", "º", "Õ", "õ", "Ö",
"ö", "¶", "»", "”", "›", "’", "‚", "Š", "š", "Ú", "ú",
"Û", "û", "Ù", "ù", "Ü", "ü", "Ý", "ý", "ÿ", "ÿ", "ˆ", "¡", "¦",
"¨", "¯", "´", "¸", "¿", "˜", "‘", "’", "‚", "“", "”", "„", "‹", "›", "±", "«", "»", "×", "÷", "¢", "£", "¤", "¥", "§", "©",
"¬", "®", "°", "µ", "¶", "•", "†", "‡", "•", "…", "‰", "€", "¼", "½", "¾", "¹", "²", "³", "ª", "Á", "á", "À", "à", "Â", "â",
"Ä", "ä", "Ã", "ã", "Å", "å", "Ç", "ç", "Ð", "ð", "É", "é", "È", "è", "Ê", "ê", "Ë", "ë", "ƒ", "Í", "í", "Ì", "ì", "Î", "î",
"Ï", "ï", "Ñ", "ñ", "º", "Ó", "ó", "Ò", "ò", "Ô", "ô", "Ö", "ö", "Õ", "õ", "Ø", "ø", "Š", "š", "ß", "Þ", "þ", "™", "Ú", "ú",
"Ù", "ù", "Û", "û", "Ü", "ü", "Ý", "ý", "Ÿ", "ÿ", "Ž", "ž"
);
$map_to = array
(
"­", "–", "—", "€", "", "", """, "…", "†", "‡", "^", "‰", "S",
"‹", "OE", "Z", "'", "'", """, """, "•", "–", "—", "˜", "™",
"s", "'", "oe", "z", "Y", "", "¢", "£", "¤", "¥", "¦", "§", "¨", "©",
"a", """, "", "­", "®", "", "°", "±", "²", "³", "´", "µ", "", "·",
"", "¹", "°", """, "¼", "½", "¾", "", "A", "A", "A", "A", "A", "A", "AE", "C", "E",
"E", "E", "E", "I", "I", "I", "I", "D", "N", "O", "O", "O", "O", "O", "×", "Ø", "U", "U", "U", "U", "Y",
"Þ", "ß", "a", "a", "a", "a", "a", "a", "ae", "c", "e", "e", "e", "e", "i", "i", "i", "i", "o", "n", "o",
"o", "o", "o", "o", "÷", "ø", "u", "u", "u", "u", "y", "þ", "y", "A", "a", "A", "a", "AE", "ae",
"A", "a", "A", "a", "A", "a", "A", "a", """, "C", "c", "", "^", "E", "e", "E", "e", "E", "e", "D", "o", "E", "e",
"", "I", "i", "I", "i", "", "I", "i", "", "I", "i", """, """, "'", "", "", "N", "n", "O", "o", "O", "o",
"OE", "oe", "O", "o", "a", "°", "O", "o", "O", "o", "", """, """, "'", "'", "", "S", "s", "U",
"u", "U", "u", "U", "u", "U", "u", "Y", "y", "Y", "y", "^", "", "¦", "¨", "", "´", "", "", "˜",
"'", "'", "", """, """, """, "‹", "'", "±", """, """, "×",
"÷", "¢", "£", "¤", "¥", "§", "©", "", "®", "°", "µ", "",
"·", "†", "‡", "•", "…", "‰", "€", "¼", "½", "¾",
"¹", "²", "³", "a", "A", "a", "A", "a", "A", "a", "A", "a", "A", "a", "A", "a", "C", "c", "D", "o",
"E", "e", "E", "e", "E", "e", "E", "e", "", "I", "i", "I", "i", "I", "i", "I", "i", "N", "n", "°", "O", "o",
"O", "o", "O", "o", "O", "o", "O", "o", "Ø", "ø", "S", "s", "ß", "Þ", "þ",
"™", "U", "u", "U", "u", "U", "u", "U", "u", "Y", "y", "Y", "y", "Z", "z"
);
return str_replace($map_from, $map_to, $source_text);
}
?>