WordPress.org

Make WordPress Core


Ignore:
Timestamp:
08/26/2016 09:34:44 AM (3 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.