Make WordPress Core


Ignore:
Timestamp:
08/26/2016 09:34:44 AM (10 years ago)
Author:
wonderboymusic
Message:

Formatting: for a performance boost in remove_accents(), convert chr() calls to string literals.

Props gitlost.
Fixes #37643.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/formatting.php

    r38193 r38359  
    15041504                $chars = array(
    15051505                // Decompositions for Latin-1 Supplement
    1506                 chr(194).chr(170) => 'a', chr(194).chr(186) => 'o',
    1507                 chr(195).chr(128) => 'A', chr(195).chr(129) => 'A',
    1508                 chr(195).chr(130) => 'A', chr(195).chr(131) => 'A',
    1509                 chr(195).chr(132) => 'A', chr(195).chr(133) => 'A',
    1510                 chr(195).chr(134) => 'AE',chr(195).chr(135) => 'C',
    1511                 chr(195).chr(136) => 'E', chr(195).chr(137) => 'E',
    1512                 chr(195).chr(138) => 'E', chr(195).chr(139) => 'E',
    1513                 chr(195).chr(140) => 'I', chr(195).chr(141) => 'I',
    1514                 chr(195).chr(142) => 'I', chr(195).chr(143) => 'I',
    1515                 chr(195).chr(144) => 'D', chr(195).chr(145) => 'N',
    1516                 chr(195).chr(146) => 'O', chr(195).chr(147) => 'O',
    1517                 chr(195).chr(148) => 'O', chr(195).chr(149) => 'O',
    1518                 chr(195).chr(150) => 'O', chr(195).chr(153) => 'U',
    1519                 chr(195).chr(154) => 'U', chr(195).chr(155) => 'U',
    1520                 chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y',
    1521                 chr(195).chr(158) => 'TH',chr(195).chr(159) => 's',
    1522                 chr(195).chr(160) => 'a', chr(195).chr(161) => 'a',
    1523                 chr(195).chr(162) => 'a', chr(195).chr(163) => 'a',
    1524                 chr(195).chr(164) => 'a', chr(195).chr(165) => 'a',
    1525                 chr(195).chr(166) => 'ae',chr(195).chr(167) => 'c',
    1526                 chr(195).chr(168) => 'e', chr(195).chr(169) => 'e',
    1527                 chr(195).chr(170) => 'e', chr(195).chr(171) => 'e',
    1528                 chr(195).chr(172) => 'i', chr(195).chr(173) => 'i',
    1529                 chr(195).chr(174) => 'i', chr(195).chr(175) => 'i',
    1530                 chr(195).chr(176) => 'd', chr(195).chr(177) => 'n',
    1531                 chr(195).chr(178) => 'o', chr(195).chr(179) => 'o',
    1532                 chr(195).chr(180) => 'o', chr(195).chr(181) => 'o',
    1533                 chr(195).chr(182) => 'o', chr(195).chr(184) => 'o',
    1534                 chr(195).chr(185) => 'u', chr(195).chr(186) => 'u',
    1535                 chr(195).chr(187) => 'u', chr(195).chr(188) => 'u',
    1536                 chr(195).chr(189) => 'y', chr(195).chr(190) => 'th',
    1537                 chr(195).chr(191) => 'y', chr(195).chr(152) => 'O',
     1506                'ª' => 'a', 'º' => 'o',
     1507                'À' => 'A', 'Á' => 'A',
     1508                'Â' => 'A', 'Ã' => 'A',
     1509                'Ä' => 'A', 'Å' => 'A',
     1510                'Æ' => 'AE','Ç' => 'C',
     1511                'È' => 'E', 'É' => 'E',
     1512                'Ê' => 'E', 'Ë' => 'E',
     1513                'Ì' => 'I', 'Í' => 'I',
     1514                'Î' => 'I', 'Ï' => 'I',
     1515                'Ð' => 'D', 'Ñ' => 'N',
     1516                'Ò' => 'O', 'Ó' => 'O',
     1517                'Ô' => 'O', 'Õ' => 'O',
     1518                'Ö' => 'O', 'Ù' => 'U',
     1519                'Ú' => 'U', 'Û' => 'U',
     1520                'Ü' => 'U', 'Ý' => 'Y',
     1521                'Þ' => 'TH','ß' => 's',
     1522                'à' => 'a', 'á' => 'a',
     1523                'â' => 'a', 'ã' => 'a',
     1524                'ä' => 'a', 'å' => 'a',
     1525                'æ' => 'ae','ç' => 'c',
     1526                'è' => 'e', 'é' => 'e',
     1527                'ê' => 'e', 'ë' => 'e',
     1528                'ì' => 'i', 'í' => 'i',
     1529                'î' => 'i', 'ï' => 'i',
     1530                'ð' => 'd', 'ñ' => 'n',
     1531                'ò' => 'o', 'ó' => 'o',
     1532                'ô' => 'o', 'õ' => 'o',
     1533                'ö' => 'o', 'ø' => 'o',
     1534                'ù' => 'u', 'ú' => 'u',
     1535                'û' => 'u', 'ü' => 'u',
     1536                'ý' => 'y', 'þ' => 'th',
     1537                'ÿ' => 'y', 'Ø' => 'O',
    15381538                // Decompositions for Latin Extended-A
    1539                 chr(196).chr(128) => 'A', chr(196).chr(129) => 'a',
    1540                 chr(196).chr(130) => 'A', chr(196).chr(131) => 'a',
    1541                 chr(196).chr(132) => 'A', chr(196).chr(133) => 'a',
    1542                 chr(196).chr(134) => 'C', chr(196).chr(135) => 'c',
    1543                 chr(196).chr(136) => 'C', chr(196).chr(137) => 'c',
    1544                 chr(196).chr(138) => 'C', chr(196).chr(139) => 'c',
    1545                 chr(196).chr(140) => 'C', chr(196).chr(141) => 'c',
    1546                 chr(196).chr(142) => 'D', chr(196).chr(143) => 'd',
    1547                 chr(196).chr(144) => 'D', chr(196).chr(145) => 'd',
    1548                 chr(196).chr(146) => 'E', chr(196).chr(147) => 'e',
    1549                 chr(196).chr(148) => 'E', chr(196).chr(149) => 'e',
    1550                 chr(196).chr(150) => 'E', chr(196).chr(151) => 'e',
    1551                 chr(196).chr(152) => 'E', chr(196).chr(153) => 'e',
    1552                 chr(196).chr(154) => 'E', chr(196).chr(155) => 'e',
    1553                 chr(196).chr(156) => 'G', chr(196).chr(157) => 'g',
    1554                 chr(196).chr(158) => 'G', chr(196).chr(159) => 'g',
    1555                 chr(196).chr(160) => 'G', chr(196).chr(161) => 'g',
    1556                 chr(196).chr(162) => 'G', chr(196).chr(163) => 'g',
    1557                 chr(196).chr(164) => 'H', chr(196).chr(165) => 'h',
    1558                 chr(196).chr(166) => 'H', chr(196).chr(167) => 'h',
    1559                 chr(196).chr(168) => 'I', chr(196).chr(169) => 'i',
    1560                 chr(196).chr(170) => 'I', chr(196).chr(171) => 'i',
    1561                 chr(196).chr(172) => 'I', chr(196).chr(173) => 'i',
    1562                 chr(196).chr(174) => 'I', chr(196).chr(175) => 'i',
    1563                 chr(196).chr(176) => 'I', chr(196).chr(177) => 'i',
    1564                 chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij',
    1565                 chr(196).chr(180) => 'J', chr(196).chr(181) => 'j',
    1566                 chr(196).chr(182) => 'K', chr(196).chr(183) => 'k',
    1567                 chr(196).chr(184) => 'k', chr(196).chr(185) => 'L',
    1568                 chr(196).chr(186) => 'l', chr(196).chr(187) => 'L',
    1569                 chr(196).chr(188) => 'l', chr(196).chr(189) => 'L',
    1570                 chr(196).chr(190) => 'l', chr(196).chr(191) => 'L',
    1571                 chr(197).chr(128) => 'l', chr(197).chr(129) => 'L',
    1572                 chr(197).chr(130) => 'l', chr(197).chr(131) => 'N',
    1573                 chr(197).chr(132) => 'n', chr(197).chr(133) => 'N',
    1574                 chr(197).chr(134) => 'n', chr(197).chr(135) => 'N',
    1575                 chr(197).chr(136) => 'n', chr(197).chr(137) => 'n',
    1576                 chr(197).chr(138) => 'N', chr(197).chr(139) => 'n',
    1577                 chr(197).chr(140) => 'O', chr(197).chr(141) => 'o',
    1578                 chr(197).chr(142) => 'O', chr(197).chr(143) => 'o',
    1579                 chr(197).chr(144) => 'O', chr(197).chr(145) => 'o',
    1580                 chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe',
    1581                 chr(197).chr(148) => 'R',chr(197).chr(149) => 'r',
    1582                 chr(197).chr(150) => 'R',chr(197).chr(151) => 'r',
    1583                 chr(197).chr(152) => 'R',chr(197).chr(153) => 'r',
    1584                 chr(197).chr(154) => 'S',chr(197).chr(155) => 's',
    1585                 chr(197).chr(156) => 'S',chr(197).chr(157) => 's',
    1586                 chr(197).chr(158) => 'S',chr(197).chr(159) => 's',
    1587                 chr(197).chr(160) => 'S', chr(197).chr(161) => 's',
    1588                 chr(197).chr(162) => 'T', chr(197).chr(163) => 't',
    1589                 chr(197).chr(164) => 'T', chr(197).chr(165) => 't',
    1590                 chr(197).chr(166) => 'T', chr(197).chr(167) => 't',
    1591                 chr(197).chr(168) => 'U', chr(197).chr(169) => 'u',
    1592                 chr(197).chr(170) => 'U', chr(197).chr(171) => 'u',
    1593                 chr(197).chr(172) => 'U', chr(197).chr(173) => 'u',
    1594                 chr(197).chr(174) => 'U', chr(197).chr(175) => 'u',
    1595                 chr(197).chr(176) => 'U', chr(197).chr(177) => 'u',
    1596                 chr(197).chr(178) => 'U', chr(197).chr(179) => 'u',
    1597                 chr(197).chr(180) => 'W', chr(197).chr(181) => 'w',
    1598                 chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y',
    1599                 chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z',
    1600                 chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z',
    1601                 chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z',
    1602                 chr(197).chr(190) => 'z', chr(197).chr(191) => 's',
     1539                'Ā' => 'A', 'ā' => 'a',
     1540                'Ă' => 'A', 'ă' => 'a',
     1541                'Ą' => 'A', 'ą' => 'a',
     1542                'Ć' => 'C', 'ć' => 'c',
     1543                'Ĉ' => 'C', 'ĉ' => 'c',
     1544                'Ċ' => 'C', 'ċ' => 'c',
     1545                'Č' => 'C', 'č' => 'c',
     1546                'Ď' => 'D', 'ď' => 'd',
     1547                'Đ' => 'D', 'đ' => 'd',
     1548                'Ē' => 'E', 'ē' => 'e',
     1549                'Ĕ' => 'E', 'ĕ' => 'e',
     1550                'Ė' => 'E', 'ė' => 'e',
     1551                'Ę' => 'E', 'ę' => 'e',
     1552                'Ě' => 'E', 'ě' => 'e',
     1553                'Ĝ' => 'G', 'ĝ' => 'g',
     1554                'Ğ' => 'G', 'ğ' => 'g',
     1555                'Ġ' => 'G', 'ġ' => 'g',
     1556                'Ģ' => 'G', 'ģ' => 'g',
     1557                'Ĥ' => 'H', 'ĥ' => 'h',
     1558                'Ħ' => 'H', 'ħ' => 'h',
     1559                'Ĩ' => 'I', 'ĩ' => 'i',
     1560                'Ī' => 'I', 'ī' => 'i',
     1561                'Ĭ' => 'I', 'ĭ' => 'i',
     1562                'Į' => 'I', 'į' => 'i',
     1563                'İ' => 'I', 'ı' => 'i',
     1564                'IJ' => 'IJ','ij' => 'ij',
     1565                'Ĵ' => 'J', 'ĵ' => 'j',
     1566                'Ķ' => 'K', 'ķ' => 'k',
     1567                'ĸ' => 'k', 'Ĺ' => 'L',
     1568                'ĺ' => 'l', 'Ļ' => 'L',
     1569                'ļ' => 'l', 'Ľ' => 'L',
     1570                'ľ' => 'l', 'Ŀ' => 'L',
     1571                'ŀ' => 'l', 'Ł' => 'L',
     1572                'ł' => 'l', 'Ń' => 'N',
     1573                'ń' => 'n', 'Ņ' => 'N',
     1574                'ņ' => 'n', 'Ň' => 'N',
     1575                'ň' => 'n', 'ʼn' => 'n',
     1576                'Ŋ' => 'N', 'ŋ' => 'n',
     1577                'Ō' => 'O', 'ō' => 'o',
     1578                'Ŏ' => 'O', 'ŏ' => 'o',
     1579                'Ő' => 'O', 'ő' => 'o',
     1580                'Œ' => 'OE','œ' => 'oe',
     1581                'Ŕ' => 'R','ŕ' => 'r',
     1582                'Ŗ' => 'R','ŗ' => 'r',
     1583                'Ř' => 'R','ř' => 'r',
     1584                'Ś' => 'S','ś' => 's',
     1585                'Ŝ' => 'S','ŝ' => 's',
     1586                'Ş' => 'S','ş' => 's',
     1587                'Š' => 'S', 'š' => 's',
     1588                'Ţ' => 'T', 'ţ' => 't',
     1589                'Ť' => 'T', 'ť' => 't',
     1590                'Ŧ' => 'T', 'ŧ' => 't',
     1591                'Ũ' => 'U', 'ũ' => 'u',
     1592                'Ū' => 'U', 'ū' => 'u',
     1593                'Ŭ' => 'U', 'ŭ' => 'u',
     1594                'Ů' => 'U', 'ů' => 'u',
     1595                'Ű' => 'U', 'ű' => 'u',
     1596                'Ų' => 'U', 'ų' => 'u',
     1597                'Ŵ' => 'W', 'ŵ' => 'w',
     1598                'Ŷ' => 'Y', 'ŷ' => 'y',
     1599                'Ÿ' => 'Y', 'Ź' => 'Z',
     1600                'ź' => 'z', 'Ż' => 'Z',
     1601                'ż' => 'z', 'Ž' => 'Z',
     1602                'ž' => 'z', 'ſ' => 's',
    16031603                // Decompositions for Latin Extended-B
    1604                 chr(200).chr(152) => 'S', chr(200).chr(153) => 's',
    1605                 chr(200).chr(154) => 'T', chr(200).chr(155) => 't',
     1604                'Ș' => 'S', 'ș' => 's',
     1605                'Ț' => 'T', 'ț' => 't',
    16061606                // Euro Sign
    1607                 chr(226).chr(130).chr(172) => 'E',
     1607                '€' => 'E',
    16081608                // GBP (Pound) Sign
    1609                 chr(194).chr(163) => '',
     1609                '£' => '',
    16101610                // Vowels with diacritic (Vietnamese)
    16111611                // unmarked
    1612                 chr(198).chr(160) => 'O', chr(198).chr(161) => 'o',
    1613                 chr(198).chr(175) => 'U', chr(198).chr(176) => 'u',
     1612                'Ơ' => 'O', 'ơ' => 'o',
     1613                'Ư' => 'U', 'ư' => 'u',
    16141614                // grave accent
    1615                 chr(225).chr(186).chr(166) => 'A', chr(225).chr(186).chr(167) => 'a',
    1616                 chr(225).chr(186).chr(176) => 'A', chr(225).chr(186).chr(177) => 'a',
    1617                 chr(225).chr(187).chr(128) => 'E', chr(225).chr(187).chr(129) => 'e',
    1618                 chr(225).chr(187).chr(146) => 'O', chr(225).chr(187).chr(147) => 'o',
    1619                 chr(225).chr(187).chr(156) => 'O', chr(225).chr(187).chr(157) => 'o',
    1620                 chr(225).chr(187).chr(170) => 'U', chr(225).chr(187).chr(171) => 'u',
    1621                 chr(225).chr(187).chr(178) => 'Y', chr(225).chr(187).chr(179) => 'y',
     1615                'Ầ' => 'A', 'ầ' => 'a',
     1616                'Ằ' => 'A', 'ằ' => 'a',
     1617                'Ề' => 'E', 'ề' => 'e',
     1618                'Ồ' => 'O', 'ồ' => 'o',
     1619                'Ờ' => 'O', 'ờ' => 'o',
     1620                'Ừ' => 'U', 'ừ' => 'u',
     1621                'Ỳ' => 'Y', 'ỳ' => 'y',
    16221622                // hook
    1623                 chr(225).chr(186).chr(162) => 'A', chr(225).chr(186).chr(163) => 'a',
    1624                 chr(225).chr(186).chr(168) => 'A', chr(225).chr(186).chr(169) => 'a',
    1625                 chr(225).chr(186).chr(178) => 'A', chr(225).chr(186).chr(179) => 'a',
    1626                 chr(225).chr(186).chr(186) => 'E', chr(225).chr(186).chr(187) => 'e',
    1627                 chr(225).chr(187).chr(130) => 'E', chr(225).chr(187).chr(131) => 'e',
    1628                 chr(225).chr(187).chr(136) => 'I', chr(225).chr(187).chr(137) => 'i',
    1629                 chr(225).chr(187).chr(142) => 'O', chr(225).chr(187).chr(143) => 'o',
    1630                 chr(225).chr(187).chr(148) => 'O', chr(225).chr(187).chr(149) => 'o',
    1631                 chr(225).chr(187).chr(158) => 'O', chr(225).chr(187).chr(159) => 'o',
    1632                 chr(225).chr(187).chr(166) => 'U', chr(225).chr(187).chr(167) => 'u',
    1633                 chr(225).chr(187).chr(172) => 'U', chr(225).chr(187).chr(173) => 'u',
    1634                 chr(225).chr(187).chr(182) => 'Y', chr(225).chr(187).chr(183) => 'y',
     1623                'Ả' => 'A', 'ả' => 'a',
     1624                'Ẩ' => 'A', 'ẩ' => 'a',
     1625                'Ẳ' => 'A', 'ẳ' => 'a',
     1626                'Ẻ' => 'E', 'ẻ' => 'e',
     1627                'Ể' => 'E', 'ể' => 'e',
     1628                'Ỉ' => 'I', 'ỉ' => 'i',
     1629                'Ỏ' => 'O', 'ỏ' => 'o',
     1630                'Ổ' => 'O', 'ổ' => 'o',
     1631                'Ở' => 'O', 'ở' => 'o',
     1632                'Ủ' => 'U', 'ủ' => 'u',
     1633                'Ử' => 'U', 'ử' => 'u',
     1634                'Ỷ' => 'Y', 'ỷ' => 'y',
    16351635                // tilde
    1636                 chr(225).chr(186).chr(170) => 'A', chr(225).chr(186).chr(171) => 'a',
    1637                 chr(225).chr(186).chr(180) => 'A', chr(225).chr(186).chr(181) => 'a',
    1638                 chr(225).chr(186).chr(188) => 'E', chr(225).chr(186).chr(189) => 'e',
    1639                 chr(225).chr(187).chr(132) => 'E', chr(225).chr(187).chr(133) => 'e',
    1640                 chr(225).chr(187).chr(150) => 'O', chr(225).chr(187).chr(151) => 'o',
    1641                 chr(225).chr(187).chr(160) => 'O', chr(225).chr(187).chr(161) => 'o',
    1642                 chr(225).chr(187).chr(174) => 'U', chr(225).chr(187).chr(175) => 'u',
    1643                 chr(225).chr(187).chr(184) => 'Y', chr(225).chr(187).chr(185) => 'y',
     1636                'Ẫ' => 'A', 'ẫ' => 'a',
     1637                'Ẵ' => 'A', 'ẵ' => 'a',
     1638                'Ẽ' => 'E', 'ẽ' => 'e',
     1639                'Ễ' => 'E', 'ễ' => 'e',
     1640                'Ỗ' => 'O', 'ỗ' => 'o',
     1641                'Ỡ' => 'O', 'ỡ' => 'o',
     1642                'Ữ' => 'U', 'ữ' => 'u',
     1643                'Ỹ' => 'Y', 'ỹ' => 'y',
    16441644                // acute accent
    1645                 chr(225).chr(186).chr(164) => 'A', chr(225).chr(186).chr(165) => 'a',
    1646                 chr(225).chr(186).chr(174) => 'A', chr(225).chr(186).chr(175) => 'a',
    1647                 chr(225).chr(186).chr(190) => 'E', chr(225).chr(186).chr(191) => 'e',
    1648                 chr(225).chr(187).chr(144) => 'O', chr(225).chr(187).chr(145) => 'o',
    1649                 chr(225).chr(187).chr(154) => 'O', chr(225).chr(187).chr(155) => 'o',
    1650                 chr(225).chr(187).chr(168) => 'U', chr(225).chr(187).chr(169) => 'u',
     1645                'Ấ' => 'A', 'ấ' => 'a',
     1646                'Ắ' => 'A', 'ắ' => 'a',
     1647                'Ế' => 'E', 'ế' => 'e',
     1648                'Ố' => 'O', 'ố' => 'o',
     1649                'Ớ' => 'O', 'ớ' => 'o',
     1650                'Ứ' => 'U', 'ứ' => 'u',
    16511651                // dot below
    1652                 chr(225).chr(186).chr(160) => 'A', chr(225).chr(186).chr(161) => 'a',
    1653                 chr(225).chr(186).chr(172) => 'A', chr(225).chr(186).chr(173) => 'a',
    1654                 chr(225).chr(186).chr(182) => 'A', chr(225).chr(186).chr(183) => 'a',
    1655                 chr(225).chr(186).chr(184) => 'E', chr(225).chr(186).chr(185) => 'e',
    1656                 chr(225).chr(187).chr(134) => 'E', chr(225).chr(187).chr(135) => 'e',
    1657                 chr(225).chr(187).chr(138) => 'I', chr(225).chr(187).chr(139) => 'i',
    1658                 chr(225).chr(187).chr(140) => 'O', chr(225).chr(187).chr(141) => 'o',
    1659                 chr(225).chr(187).chr(152) => 'O', chr(225).chr(187).chr(153) => 'o',
    1660                 chr(225).chr(187).chr(162) => 'O', chr(225).chr(187).chr(163) => 'o',
    1661                 chr(225).chr(187).chr(164) => 'U', chr(225).chr(187).chr(165) => 'u',
    1662                 chr(225).chr(187).chr(176) => 'U', chr(225).chr(187).chr(177) => 'u',
    1663                 chr(225).chr(187).chr(180) => 'Y', chr(225).chr(187).chr(181) => 'y',
     1652                'Ạ' => 'A', 'ạ' => 'a',
     1653                'Ậ' => 'A', 'ậ' => 'a',
     1654                'Ặ' => 'A', 'ặ' => 'a',
     1655                'Ẹ' => 'E', 'ẹ' => 'e',
     1656                'Ệ' => 'E', 'ệ' => 'e',
     1657                'Ị' => 'I', 'ị' => 'i',
     1658                'Ọ' => 'O', 'ọ' => 'o',
     1659                'Ộ' => 'O', 'ộ' => 'o',
     1660                'Ợ' => 'O', 'ợ' => 'o',
     1661                'Ụ' => 'U', 'ụ' => 'u',
     1662                'Ự' => 'U', 'ự' => 'u',
     1663                'Ỵ' => 'Y', 'ỵ' => 'y',
    16641664                // Vowels with diacritic (Chinese, Hanyu Pinyin)
    1665                 chr(201).chr(145) => 'a',
     1665                'ɑ' => 'a',
    16661666                // macron
    1667                 chr(199).chr(149) => 'U', chr(199).chr(150) => 'u',
     1667                'Ǖ' => 'U', 'ǖ' => 'u',
    16681668                // acute accent
    1669                 chr(199).chr(151) => 'U', chr(199).chr(152) => 'u',
     1669                'Ǘ' => 'U', 'ǘ' => 'u',
    16701670                // caron
    1671                 chr(199).chr(141) => 'A', chr(199).chr(142) => 'a',
    1672                 chr(199).chr(143) => 'I', chr(199).chr(144) => 'i',
    1673                 chr(199).chr(145) => 'O', chr(199).chr(146) => 'o',
    1674                 chr(199).chr(147) => 'U', chr(199).chr(148) => 'u',
    1675                 chr(199).chr(153) => 'U', chr(199).chr(154) => 'u',
     1671                'Ǎ' => 'A', 'ǎ' => 'a',
     1672                'Ǐ' => 'I', 'ǐ' => 'i',
     1673                'Ǒ' => 'O', 'ǒ' => 'o',
     1674                'Ǔ' => 'U', 'ǔ' => 'u',
     1675                'Ǚ' => 'U', 'ǚ' => 'u',
    16761676                // grave accent
    1677                 chr(199).chr(155) => 'U', chr(199).chr(156) => 'u',
     1677                'Ǜ' => 'U', 'ǜ' => 'u',
    16781678                );
    16791679
     
    16821682
    16831683                if ( 'de_DE' == $locale || 'de_DE_formal' == $locale || 'de_CH' == $locale || 'de_CH_informal' == $locale ) {
    1684                         $chars[ chr(195).chr(132) ] = 'Ae';
    1685                         $chars[ chr(195).chr(164) ] = 'ae';
    1686                         $chars[ chr(195).chr(150) ] = 'Oe';
    1687                         $chars[ chr(195).chr(182) ] = 'oe';
    1688                         $chars[ chr(195).chr(156) ] = 'Ue';
    1689                         $chars[ chr(195).chr(188) ] = 'ue';
    1690                         $chars[ chr(195).chr(159) ] = 'ss';
     1684                        $chars[ 'Ä' ] = 'Ae';
     1685                        $chars[ 'ä' ] = 'ae';
     1686                        $chars[ 'Ö' ] = 'Oe';
     1687                        $chars[ 'ö' ] = 'oe';
     1688                        $chars[ 'Ü' ] = 'Ue';
     1689                        $chars[ 'ü' ] = 'ue';
     1690                        $chars[ 'ß' ] = 'ss';
    16911691                } elseif ( 'da_DK' === $locale ) {
    1692                         $chars[ chr(195).chr(134) ] = 'Ae';
    1693                         $chars[ chr(195).chr(166) ] = 'ae';
    1694                         $chars[ chr(195).chr(152) ] = 'Oe';
    1695                         $chars[ chr(195).chr(184) ] = 'oe';
    1696                         $chars[ chr(195).chr(133) ] = 'Aa';
    1697                         $chars[ chr(195).chr(165) ] = 'aa';
     1692                        $chars[ 'Æ' ] = 'Ae';
     1693                        $chars[ 'æ' ] = 'ae';
     1694                        $chars[ 'Ø' ] = 'Oe';
     1695                        $chars[ 'ø' ] = 'oe';
     1696                        $chars[ 'Å' ] = 'Aa';
     1697                        $chars[ 'å' ] = 'aa';
    16981698                } elseif ( 'ca' === $locale ) {
    1699                         $chars[ chr(108).chr(194).chr(183).chr(108) ] = 'll';
     1699                        $chars[ 'l·l' ] = 'll';
    17001700                }
    17011701
     
    17041704                $chars = array();
    17051705                // Assume ISO-8859-1 if not UTF-8
    1706                 $chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158)
    1707                         .chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194)
    1708                         .chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202)
    1709                         .chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210)
    1710                         .chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218)
    1711                         .chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227)
    1712                         .chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235)
    1713                         .chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243)
    1714                         .chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251)
    1715                         .chr(252).chr(253).chr(255);
     1706                $chars['in'] = "\x80\x83\x8a\x8e\x9a\x9e"
     1707                        ."\x9f\xa2\xa5\xb5\xc0\xc1\xc2"
     1708                        ."\xc3\xc4\xc5\xc7\xc8\xc9\xca"
     1709                        ."\xcb\xcc\xcd\xce\xcf\xd1\xd2"
     1710                        ."\xd3\xd4\xd5\xd6\xd8\xd9\xda"
     1711                        ."\xdb\xdc\xdd\xe0\xe1\xe2\xe3"
     1712                        ."\xe4\xe5\xe7\xe8\xe9\xea\xeb"
     1713                        ."\xec\xed\xee\xef\xf1\xf2\xf3"
     1714                        ."\xf4\xf5\xf6\xf8\xf9\xfa\xfb"
     1715                        ."\xfc\xfd\xff";
    17161716
    17171717                $chars['out'] = "EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy";
     
    17191719                $string = strtr($string, $chars['in'], $chars['out']);
    17201720                $double_chars = array();
    1721                 $double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254));
     1721                $double_chars['in'] = array("\x8c", "\x9c", "\xc6", "\xd0", "\xde", "\xdf", "\xe6", "\xf0", "\xfe");
    17221722                $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th');
    17231723                $string = str_replace($double_chars['in'], $double_chars['out'], $string);
Note: See TracChangeset for help on using the changeset viewer.