コード例 #1
0
ファイル: specials.php プロジェクト: Fellah/govnobaki
/**
* Used internally. Builds a PCRE pattern from the $UTF8_SPECIAL_CHARS
* array defined in this file
* This function adds the control chars 0x00 to 0x19 to the array of
* special chars (they are not included in $UTF8_SPECIAL_CHARS)
* @package utf8
* @subpackage utils
* @return string
* @see utf8_from_unicode
* @see utf8_is_word_chars
* @see utf8_strip_specials
*/
function utf8_specials_pattern()
{
    static $pattern = NULL;
    if (!$pattern) {
        global $UTF8_SPECIAL_CHARS;
        $pattern = preg_quote(utf8_from_unicode($UTF8_SPECIAL_CHARS), '/');
        $pattern = '/[\\x00-\\x19' . $pattern . ']/u';
    }
    return $pattern;
}
コード例 #2
0
ファイル: specials.php プロジェクト: vanie3/appland
function utf8_specials_pattern()
{
    static $pattern = NULL;
    if (!$pattern) {
        $UTF8_SPECIAL_CHARS = array(0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x27, 0x28, 0x29, 0x2a, 0x2b, 0x2c, 0x2f, 0x3b, 0x3c, 0x3d, 0x3e, 0x3f, 0x40, 0x5b, 0x5c, 0x5d, 0x5e, 0x60, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f, 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f, 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0x9c, 0x9d, 0x9e, 0x9f, 0xa0, 0xa1, 0xa2, 0xa3, 0xa4, 0xa5, 0xa6, 0xa7, 0xa8, 0xa9, 0xaa, 0xab, 0xac, 0xad, 0xae, 0xaf, 0xb0, 0xb1, 0xb2, 0xb3, 0xb4, 0xb5, 0xb6, 0xb7, 0xb8, 0xb9, 0xba, 0xbb, 0xbc, 0xbd, 0xbe, 0xbf, 0xd7, 0xf7, 0x2c7, 0x2d8, 0x2d9, 0x2da, 0x2db, 0x2dc, 0x2dd, 0x300, 0x301, 0x303, 0x309, 0x323, 0x384, 0x385, 0x387, 0x3b2, 0x3c6, 0x3d1, 0x3d2, 0x3d5, 0x3d6, 0x5b0, 0x5b1, 0x5b2, 0x5b3, 0x5b4, 0x5b5, 0x5b6, 0x5b7, 0x5b8, 0x5b9, 0x5bb, 0x5bc, 0x5bd, 0x5be, 0x5bf, 0x5c0, 0x5c1, 0x5c2, 0x5c3, 0x5f3, 0x5f4, 0x60c, 0x61b, 0x61f, 0x640, 0x64b, 0x64c, 0x64d, 0x64e, 0x64f, 0x650, 0x651, 0x652, 0x66a, 0xe3f, 0x200c, 0x200d, 0x200e, 0x200f, 0x2013, 0x2014, 0x2015, 0x2017, 0x2018, 0x2019, 0x201a, 0x201c, 0x201d, 0x201e, 0x2020, 0x2021, 0x2022, 0x2026, 0x2030, 0x2032, 0x2033, 0x2039, 0x203a, 0x2044, 0x20a7, 0x20aa, 0x20ab, 0x20ac, 0x2116, 0x2118, 0x2122, 0x2126, 0x2135, 0x2190, 0x2191, 0x2192, 0x2193, 0x2194, 0x2195, 0x21b5, 0x21d0, 0x21d1, 0x21d2, 0x21d3, 0x21d4, 0x2200, 0x2202, 0x2203, 0x2205, 0x2206, 0x2207, 0x2208, 0x2209, 0x220b, 0x220f, 0x2211, 0x2212, 0x2215, 0x2217, 0x2219, 0x221a, 0x221d, 0x221e, 0x2220, 0x2227, 0x2228, 0x2229, 0x222a, 0x222b, 0x2234, 0x223c, 0x2245, 0x2248, 0x2260, 0x2261, 0x2264, 0x2265, 0x2282, 0x2283, 0x2284, 0x2286, 0x2287, 0x2295, 0x2297, 0x22a5, 0x22c5, 0x2310, 0x2320, 0x2321, 0x2329, 0x232a, 0x2469, 0x2500, 0x2502, 0x250c, 0x2510, 0x2514, 0x2518, 0x251c, 0x2524, 0x252c, 0x2534, 0x253c, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d, 0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567, 0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590, 0x2591, 0x2592, 0x2593, 0x25a0, 0x25b2, 0x25bc, 0x25c6, 0x25ca, 0x25cf, 0x25d7, 0x2605, 0x260e, 0x261b, 0x261e, 0x2660, 0x2663, 0x2665, 0x2666, 0x2701, 0x2702, 0x2703, 0x2704, 0x2706, 0x2707, 0x2708, 0x2709, 0x270c, 0x270d, 0x270e, 0x270f, 0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, 0x2718, 0x2719, 0x271a, 0x271b, 0x271c, 0x271d, 0x271e, 0x271f, 0x2720, 0x2721, 0x2722, 0x2723, 0x2724, 0x2725, 0x2726, 0x2727, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, 0x272e, 0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, 0x2738, 0x2739, 0x273a, 0x273b, 0x273c, 0x273d, 0x273e, 0x273f, 0x2740, 0x2741, 0x2742, 0x2743, 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, 0x274d, 0x274f, 0x2750, 0x2751, 0x2752, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c, 0x275d, 0x275e, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x277f, 0x2789, 0x2793, 0x2794, 0x2798, 0x2799, 0x279a, 0x279b, 0x279c, 0x279d, 0x279e, 0x279f, 0x27a0, 0x27a1, 0x27a2, 0x27a3, 0x27a4, 0x27a5, 0x27a6, 0x27a7, 0x27a8, 0x27a9, 0x27aa, 0x27ab, 0x27ac, 0x27ad, 0x27ae, 0x27af, 0x27b1, 0x27b2, 0x27b3, 0x27b4, 0x27b5, 0x27b6, 0x27b7, 0x27b8, 0x27b9, 0x27ba, 0x27bb, 0x27bc, 0x27bd, 0x27be, 0xf6d9, 0xf6da, 0xf6db, 0xf8d7, 0xf8d8, 0xf8d9, 0xf8da, 0xf8db, 0xf8dc, 0xf8dd, 0xf8de, 0xf8df, 0xf8e0, 0xf8e1, 0xf8e2, 0xf8e3, 0xf8e4, 0xf8e5, 0xf8e6, 0xf8e7, 0xf8e8, 0xf8e9, 0xf8ea, 0xf8eb, 0xf8ec, 0xf8ed, 0xf8ee, 0xf8ef, 0xf8f0, 0xf8f1, 0xf8f2, 0xf8f3, 0xf8f4, 0xf8f5, 0xf8f6, 0xf8f7, 0xf8f8, 0xf8f9, 0xf8fa, 0xf8fb, 0xf8fc, 0xf8fd, 0xf8fe, 0xfe7c, 0xfe7d);
        $pattern = preg_quote(utf8_from_unicode($UTF8_SPECIAL_CHARS), '/');
        $pattern = '/[\\x00-\\x19' . $pattern . ']/u';
    }
    return $pattern;
}
コード例 #3
0
ファイル: unicode_testing.php プロジェクト: bruninoit/phpbb
/**
 * Converts unicode escape sequences (\u0123) into UTF-8 characters
 *
 * @param	string	A unicode sequence
 * @return	string	UTF-8 representation of the given unicode sequence
 */
function unicode_to_utf8($string)
{
    $utf8 = '';
    for ($i = 0; $i < strlen($string); $i++) {
        if (isset($string[$i + 5]) && substr($string, $i, 2) == '\\u' && ctype_xdigit(substr($string, $i + 2, 4))) {
            $utf8 .= utf8_from_unicode(array(base_convert(substr($string, $i + 2, 4), 16, 10)));
            $i += 5;
        } else {
            $utf8 .= $string[$i];
        }
    }
    return $utf8;
}
コード例 #4
0
ファイル: utf8.php プロジェクト: Vitronic/kaufreund.de
function utf8_strtoupper($string)
{
    static $UTF8_LOWER_TO_UPPER = null;
    if (is_null($UTF8_LOWER_TO_UPPER)) {
        $UTF8_LOWER_TO_UPPER = array(0x61 => 0x41, 0x3c6 => 0x3a6, 0x163 => 0x162, 0xe5 => 0xc5, 0x62 => 0x42, 0x13a => 0x139, 0xe1 => 0xc1, 0x142 => 0x141, 0x3cd => 0x38e, 0x101 => 0x100, 0x491 => 0x490, 0x3b4 => 0x394, 0x15b => 0x15a, 0x64 => 0x44, 0x3b3 => 0x393, 0xf4 => 0xd4, 0x44a => 0x42a, 0x439 => 0x419, 0x113 => 0x112, 0x43c => 0x41c, 0x15f => 0x15e, 0x144 => 0x143, 0xee => 0xce, 0x45e => 0x40e, 0x44f => 0x42f, 0x3ba => 0x39a, 0x155 => 0x154, 0x69 => 0x49, 0x73 => 0x53, 0x1e1f => 0x1e1e, 0x135 => 0x134, 0x447 => 0x427, 0x3c0 => 0x3a0, 0x438 => 0x418, 0xf3 => 0xd3, 0x440 => 0x420, 0x454 => 0x404, 0x435 => 0x415, 0x449 => 0x429, 0x14b => 0x14a, 0x431 => 0x411, 0x459 => 0x409, 0x1e03 => 0x1e02, 0xf6 => 0xd6, 0xf9 => 0xd9, 0x6e => 0x4e, 0x451 => 0x401, 0x3c4 => 0x3a4, 0x443 => 0x423, 0x15d => 0x15c, 0x453 => 0x403, 0x3c8 => 0x3a8, 0x159 => 0x158, 0x67 => 0x47, 0xe4 => 0xc4, 0x3ac => 0x386, 0x3ae => 0x389, 0x167 => 0x166, 0x3be => 0x39e, 0x165 => 0x164, 0x117 => 0x116, 0x109 => 0x108, 0x76 => 0x56, 0xfe => 0xde, 0x157 => 0x156, 0xfa => 0xda, 0x1e61 => 0x1e60, 0x1e83 => 0x1e82, 0xe2 => 0xc2, 0x119 => 0x118, 0x146 => 0x145, 0x70 => 0x50, 0x151 => 0x150, 0x44e => 0x42e, 0x129 => 0x128, 0x3c7 => 0x3a7, 0x13e => 0x13d, 0x442 => 0x422, 0x7a => 0x5a, 0x448 => 0x428, 0x3c1 => 0x3a1, 0x1e81 => 0x1e80, 0x16d => 0x16c, 0xf5 => 0xd5, 0x75 => 0x55, 0x177 => 0x176, 0xfc => 0xdc, 0x1e57 => 0x1e56, 0x3c3 => 0x3a3, 0x43a => 0x41a, 0x6d => 0x4d, 0x16b => 0x16a, 0x171 => 0x170, 0x444 => 0x424, 0xec => 0xcc, 0x169 => 0x168, 0x3bf => 0x39f, 0x6b => 0x4b, 0xf2 => 0xd2, 0xe0 => 0xc0, 0x434 => 0x414, 0x3c9 => 0x3a9, 0x1e6b => 0x1e6a, 0xe3 => 0xc3, 0x44d => 0x42d, 0x436 => 0x416, 0x1a1 => 0x1a0, 0x10d => 0x10c, 0x11d => 0x11c, 0xf0 => 0xd0, 0x13c => 0x13b, 0x45f => 0x40f, 0x45a => 0x40a, 0xe8 => 0xc8, 0x3c5 => 0x3a5, 0x66 => 0x46, 0xfd => 0xdd, 0x63 => 0x43, 0x21b => 0x21a, 0xea => 0xca, 0x3b9 => 0x399, 0x17a => 0x179, 0xef => 0xcf, 0x1b0 => 0x1af, 0x65 => 0x45, 0x3bb => 0x39b, 0x3b8 => 0x398, 0x3bc => 0x39c, 0x45c => 0x40c, 0x43f => 0x41f, 0x44c => 0x42c, 0xfe => 0xde, 0xf0 => 0xd0, 0x1ef3 => 0x1ef2, 0x68 => 0x48, 0xeb => 0xcb, 0x111 => 0x110, 0x433 => 0x413, 0x12f => 0x12e, 0xe6 => 0xc6, 0x78 => 0x58, 0x161 => 0x160, 0x16f => 0x16e, 0x3b1 => 0x391, 0x457 => 0x407, 0x173 => 0x172, 0xff => 0x178, 0x6f => 0x4f, 0x43b => 0x41b, 0x3b5 => 0x395, 0x445 => 0x425, 0x121 => 0x120, 0x17e => 0x17d, 0x17c => 0x17b, 0x3b6 => 0x396, 0x3b2 => 0x392, 0x3ad => 0x388, 0x1e85 => 0x1e84, 0x175 => 0x174, 0x71 => 0x51, 0x437 => 0x417, 0x1e0b => 0x1e0a, 0x148 => 0x147, 0x105 => 0x104, 0x458 => 0x408, 0x14d => 0x14c, 0xed => 0xcd, 0x79 => 0x59, 0x10b => 0x10a, 0x3ce => 0x38f, 0x72 => 0x52, 0x430 => 0x410, 0x455 => 0x405, 0x452 => 0x402, 0x127 => 0x126, 0x137 => 0x136, 0x12b => 0x12a, 0x3af => 0x38a, 0x44b => 0x42b, 0x6c => 0x4c, 0x3b7 => 0x397, 0x125 => 0x124, 0x219 => 0x218, 0xfb => 0xdb, 0x11f => 0x11e, 0x43e => 0x41e, 0x1e41 => 0x1e40, 0x3bd => 0x39d, 0x107 => 0x106, 0x3cb => 0x3ab, 0x446 => 0x426, 0xfe => 0xde, 0xe7 => 0xc7, 0x3ca => 0x3aa, 0x441 => 0x421, 0x432 => 0x412, 0x10f => 0x10e, 0xf8 => 0xd8, 0x77 => 0x57, 0x11b => 0x11a, 0x74 => 0x54, 0x6a => 0x4a, 0x45b => 0x40b, 0x456 => 0x406, 0x103 => 0x102, 0x3bb => 0x39b, 0xf1 => 0xd1, 0x43d => 0x41d, 0x3cc => 0x38c, 0xe9 => 0xc9, 0xf0 => 0xd0, 0x457 => 0x407, 0x123 => 0x122);
    }
    $unicode = utf8_to_unicode($string);
    if (!$unicode) {
        return false;
    }
    $count = count($unicode);
    for ($i = 0; $i < $count; $i++) {
        if (isset($UTF8_LOWER_TO_UPPER[$unicode[$i]])) {
            $unicode[$i] = $UTF8_LOWER_TO_UPPER[$unicode[$i]];
        }
    }
    return utf8_from_unicode($unicode);
}
コード例 #5
0
ファイル: utf8.php プロジェクト: halfhope/ocStore
function utf8_strtoupper($string) {
	static $UTF8_LOWER_TO_UPPER = NULL;

	if (is_null($UTF8_LOWER_TO_UPPER)) {
		$UTF8_LOWER_TO_UPPER = array(
			0x0061 => 0x0041,
			0x03C6 => 0x03A6,
			0x0163 => 0x0162,
			0x00E5 => 0x00C5,
			0x0062 => 0x0042,
			0x013A => 0x0139,
			0x00E1 => 0x00C1,
			0x0142 => 0x0141,
			0x03CD => 0x038E,
			0x0101 => 0x0100,
			0x0491 => 0x0490,
			0x03B4 => 0x0394,
			0x015B => 0x015A,
			0x0064 => 0x0044,
			0x03B3 => 0x0393,
			0x00F4 => 0x00D4,
			0x044A => 0x042A,
			0x0439 => 0x0419,
			0x0113 => 0x0112,
			0x043C => 0x041C,
			0x015F => 0x015E,
			0x0144 => 0x0143,
			0x00EE => 0x00CE,
			0x045E => 0x040E,
			0x044F => 0x042F,
			0x03BA => 0x039A,
			0x0155 => 0x0154,
			0x0069 => 0x0049,
			0x0073 => 0x0053,
			0x1E1F => 0x1E1E,
			0x0135 => 0x0134,
			0x0447 => 0x0427,
			0x03C0 => 0x03A0,
			0x0438 => 0x0418,
			0x00F3 => 0x00D3,
			0x0440 => 0x0420,
			0x0454 => 0x0404,
			0x0435 => 0x0415,
			0x0449 => 0x0429,
			0x014B => 0x014A,
			0x0431 => 0x0411,
			0x0459 => 0x0409,
			0x1E03 => 0x1E02,
			0x00F6 => 0x00D6,
			0x00F9 => 0x00D9,
			0x006E => 0x004E,
			0x0451 => 0x0401,
			0x03C4 => 0x03A4,
			0x0443 => 0x0423,
			0x015D => 0x015C,
			0x0453 => 0x0403,
			0x03C8 => 0x03A8,
			0x0159 => 0x0158,
			0x0067 => 0x0047,
			0x00E4 => 0x00C4,
			0x03AC => 0x0386,
			0x03AE => 0x0389,
			0x0167 => 0x0166,
			0x03BE => 0x039E,
			0x0165 => 0x0164,
			0x0117 => 0x0116,
			0x0109 => 0x0108,
			0x0076 => 0x0056,
			0x00FE => 0x00DE,
			0x0157 => 0x0156,
			0x00FA => 0x00DA,
			0x1E61 => 0x1E60,
			0x1E83 => 0x1E82,
			0x00E2 => 0x00C2,
			0x0119 => 0x0118,
			0x0146 => 0x0145,
			0x0070 => 0x0050,
			0x0151 => 0x0150,
			0x044E => 0x042E,
			0x0129 => 0x0128,
			0x03C7 => 0x03A7,
			0x013E => 0x013D,
			0x0442 => 0x0422,
			0x007A => 0x005A,
			0x0448 => 0x0428,
			0x03C1 => 0x03A1,
			0x1E81 => 0x1E80,
			0x016D => 0x016C,
			0x00F5 => 0x00D5,
			0x0075 => 0x0055,
			0x0177 => 0x0176,
			0x00FC => 0x00DC,
			0x1E57 => 0x1E56,
			0x03C3 => 0x03A3,
			0x043A => 0x041A,
			0x006D => 0x004D,
			0x016B => 0x016A,
			0x0171 => 0x0170,
			0x0444 => 0x0424,
			0x00EC => 0x00CC,
			0x0169 => 0x0168,
			0x03BF => 0x039F,
			0x006B => 0x004B,
			0x00F2 => 0x00D2,
			0x00E0 => 0x00C0,
			0x0434 => 0x0414,
			0x03C9 => 0x03A9,
			0x1E6B => 0x1E6A,
			0x00E3 => 0x00C3,
			0x044D => 0x042D,
			0x0436 => 0x0416,
			0x01A1 => 0x01A0,
			0x010D => 0x010C,
			0x011D => 0x011C,
			0x00F0 => 0x00D0,
			0x013C => 0x013B,
			0x045F => 0x040F,
			0x045A => 0x040A,
			0x00E8 => 0x00C8,
			0x03C5 => 0x03A5,
			0x0066 => 0x0046,
			0x00FD => 0x00DD,
			0x0063 => 0x0043,
			0x021B => 0x021A,
			0x00EA => 0x00CA,
			0x03B9 => 0x0399,
			0x017A => 0x0179,
			0x00EF => 0x00CF,
			0x01B0 => 0x01AF,
			0x0065 => 0x0045,
			0x03BB => 0x039B,
			0x03B8 => 0x0398,
			0x03BC => 0x039C,
			0x045C => 0x040C,
			0x043F => 0x041F,
			0x044C => 0x042C,
			0x00FE => 0x00DE,
			0x00F0 => 0x00D0,
			0x1EF3 => 0x1EF2,
			0x0068 => 0x0048,
			0x00EB => 0x00CB,
			0x0111 => 0x0110,
			0x0433 => 0x0413,
			0x012F => 0x012E,
			0x00E6 => 0x00C6,
			0x0078 => 0x0058,
			0x0161 => 0x0160,
			0x016F => 0x016E,
			0x03B1 => 0x0391,
			0x0457 => 0x0407,
			0x0173 => 0x0172,
			0x00FF => 0x0178,
			0x006F => 0x004F,
			0x043B => 0x041B,
			0x03B5 => 0x0395,
			0x0445 => 0x0425,
			0x0121 => 0x0120,
			0x017E => 0x017D,
			0x017C => 0x017B,
			0x03B6 => 0x0396,
			0x03B2 => 0x0392,
			0x03AD => 0x0388,
			0x1E85 => 0x1E84,
			0x0175 => 0x0174,
			0x0071 => 0x0051,
			0x0437 => 0x0417,
			0x1E0B => 0x1E0A,
			0x0148 => 0x0147,
			0x0105 => 0x0104,
			0x0458 => 0x0408,
			0x014D => 0x014C,
			0x00ED => 0x00CD,
			0x0079 => 0x0059,
			0x010B => 0x010A,
			0x03CE => 0x038F,
			0x0072 => 0x0052,
			0x0430 => 0x0410,
			0x0455 => 0x0405,
			0x0452 => 0x0402,
			0x0127 => 0x0126,
			0x0137 => 0x0136,
			0x012B => 0x012A,
			0x03AF => 0x038A,
			0x044B => 0x042B,
			0x006C => 0x004C,
			0x03B7 => 0x0397,
			0x0125 => 0x0124,
			0x0219 => 0x0218,
			0x00FB => 0x00DB,
			0x011F => 0x011E,
			0x043E => 0x041E,
			0x1E41 => 0x1E40,
			0x03BD => 0x039D,
			0x0107 => 0x0106,
			0x03CB => 0x03AB,
			0x0446 => 0x0426,
			0x00FE => 0x00DE,
			0x00E7 => 0x00C7,
			0x03CA => 0x03AA,
			0x0441 => 0x0421,
			0x0432 => 0x0412,
			0x010F => 0x010E,
			0x00F8 => 0x00D8,
			0x0077 => 0x0057,
			0x011B => 0x011A,
			0x0074 => 0x0054,
			0x006A => 0x004A,
			0x045B => 0x040B,
			0x0456 => 0x0406,
			0x0103 => 0x0102,
			0x03BB => 0x039B,
			0x00F1 => 0x00D1,
			0x043D => 0x041D,
			0x03CC => 0x038C,
			0x00E9 => 0x00C9,
			0x00F0 => 0x00D0,
			0x0457 => 0x0407,
			0x0123 => 0x0122
		);
	}

	$unicode = utf8_to_unicode($string);

	if (!$unicode) {
		return false;
	}

	$count = count($unicode);

	for ($i = 0; $i < $count; $i++){
		if (isset($UTF8_LOWER_TO_UPPER[$unicode[$i]]) ) {
			$unicode[$i] = $UTF8_LOWER_TO_UPPER[$unicode[$i]];
		}
	}

	return utf8_from_unicode($unicode);
}
コード例 #6
0
ファイル: case.php プロジェクト: stonyyi/anahita
/**
* UTF-8 aware alternative to strtoupper
* Make a string uppercase
* Note: The concept of a characters "case" only exists is some alphabets
* such as Latin, Greek, Cyrillic, Armenian and archaic Georgian - it does
* not exist in the Chinese alphabet, for example. See Unicode Standard
* Annex #21: Case Mappings
* Note: requires utf8_to_unicode and utf8_from_unicode
* @author Andreas Gohr <*****@*****.**>
* @param string
* @return mixed either string in lowercase or FALSE is UTF-8 invalid
* @see http://www.php.net/strtoupper
* @see utf8_to_unicode
* @see utf8_from_unicode
* @see http://www.unicode.org/reports/tr21/tr21-5.html
* @see http://dev.splitbrain.org/view/darcs/dokuwiki/inc/utf8.php
* @package utf8
* @subpackage strings
*/
function utf8_strtoupper($string)
{
    global $UTF8_LOWER_TO_UPPER;
    $uni = utf8_to_unicode($string);
    if (!$uni) {
        return FALSE;
    }
    $cnt = count($uni);
    for ($i = 0; $i < $cnt; $i++) {
        if (isset($UTF8_LOWER_TO_UPPER[$uni[$i]])) {
            $uni[$i] = $UTF8_LOWER_TO_UPPER[$uni[$i]];
        }
    }
    return utf8_from_unicode($uni);
}
コード例 #7
0
ファイル: Converting.php プロジェクト: protaskin/utf8
 /**
  * @dataProvider providerFailingUtf8FromUnicode
  */
 public function testFailingUtf8FromUnicodeReturnValue($unicode)
 {
     $this->assertFalse(@utf8_from_unicode($unicode, true));
 }
コード例 #8
0
ファイル: specials.php プロジェクト: Jtgadbois/Pedadida
/**
* Used internally. Builds a PCRE pattern from the $UTF8_SPECIAL_CHARS 
* array defined in this file
* The $UTF8_SPECIAL_CHARS should contain all special characters (non-letter/non-digit)
* defined in the various local charsets - it's not a complete list of
* non-alphanum characters in UTF-8. It's not perfect but should match most
* cases of special chars.
* This function adds the control chars 0x00 to 0x19 to the array of
* special chars (they are not included in $UTF8_SPECIAL_CHARS)
* @package utf8
* @subpackage utils
* @return string
* @see utf8_from_unicode
* @see utf8_is_word_chars
* @see utf8_strip_specials
*/
function utf8_specials_pattern() {
    static $pattern = NULL;
    
    if ( !$pattern ) {
        $UTF8_SPECIAL_CHARS = array(
    0x001a, 0x001b, 0x001c, 0x001d, 0x001e, 0x001f, 0x0020, 0x0021, 0x0022, 0x0023,
    0x0024, 0x0025, 0x0026, 0x0027, 0x0028, 0x0029, 0x002a, 0x002b, 0x002c,
    0x002f,         0x003b, 0x003c, 0x003d, 0x003e, 0x003f, 0x0040, 0x005b,
    0x005c, 0x005d, 0x005e,         0x0060, 0x007b, 0x007c, 0x007d, 0x007e,
    0x007f, 0x0080, 0x0081, 0x0082, 0x0083, 0x0084, 0x0085, 0x0086, 0x0087, 0x0088,
    0x0089, 0x008a, 0x008b, 0x008c, 0x008d, 0x008e, 0x008f, 0x0090, 0x0091, 0x0092,
    0x0093, 0x0094, 0x0095, 0x0096, 0x0097, 0x0098, 0x0099, 0x009a, 0x009b, 0x009c,
    0x009d, 0x009e, 0x009f, 0x00a0, 0x00a1, 0x00a2, 0x00a3, 0x00a4, 0x00a5, 0x00a6,
    0x00a7, 0x00a8, 0x00a9, 0x00aa, 0x00ab, 0x00ac, 0x00ad, 0x00ae, 0x00af, 0x00b0,
    0x00b1, 0x00b2, 0x00b3, 0x00b4, 0x00b5, 0x00b6, 0x00b7, 0x00b8, 0x00b9, 0x00ba,
    0x00bb, 0x00bc, 0x00bd, 0x00be, 0x00bf, 0x00d7, 0x00f7, 0x02c7, 0x02d8, 0x02d9,
    0x02da, 0x02db, 0x02dc, 0x02dd, 0x0300, 0x0301, 0x0303, 0x0309, 0x0323, 0x0384,
    0x0385, 0x0387, 0x03b2, 0x03c6, 0x03d1, 0x03d2, 0x03d5, 0x03d6, 0x05b0, 0x05b1,
    0x05b2, 0x05b3, 0x05b4, 0x05b5, 0x05b6, 0x05b7, 0x05b8, 0x05b9, 0x05bb, 0x05bc,
    0x05bd, 0x05be, 0x05bf, 0x05c0, 0x05c1, 0x05c2, 0x05c3, 0x05f3, 0x05f4, 0x060c,
    0x061b, 0x061f, 0x0640, 0x064b, 0x064c, 0x064d, 0x064e, 0x064f, 0x0650, 0x0651,
    0x0652, 0x066a, 0x0e3f, 0x200c, 0x200d, 0x200e, 0x200f, 0x2013, 0x2014, 0x2015,
    0x2017, 0x2018, 0x2019, 0x201a, 0x201c, 0x201d, 0x201e, 0x2020, 0x2021, 0x2022,
    0x2026, 0x2030, 0x2032, 0x2033, 0x2039, 0x203a, 0x2044, 0x20a7, 0x20aa, 0x20ab,
    0x20ac, 0x2116, 0x2118, 0x2122, 0x2126, 0x2135, 0x2190, 0x2191, 0x2192, 0x2193,
    0x2194, 0x2195, 0x21b5, 0x21d0, 0x21d1, 0x21d2, 0x21d3, 0x21d4, 0x2200, 0x2202,
    0x2203, 0x2205, 0x2206, 0x2207, 0x2208, 0x2209, 0x220b, 0x220f, 0x2211, 0x2212,
    0x2215, 0x2217, 0x2219, 0x221a, 0x221d, 0x221e, 0x2220, 0x2227, 0x2228, 0x2229,
    0x222a, 0x222b, 0x2234, 0x223c, 0x2245, 0x2248, 0x2260, 0x2261, 0x2264, 0x2265,
    0x2282, 0x2283, 0x2284, 0x2286, 0x2287, 0x2295, 0x2297, 0x22a5, 0x22c5, 0x2310,
    0x2320, 0x2321, 0x2329, 0x232a, 0x2469, 0x2500, 0x2502, 0x250c, 0x2510, 0x2514,
    0x2518, 0x251c, 0x2524, 0x252c, 0x2534, 0x253c, 0x2550, 0x2551, 0x2552, 0x2553,
    0x2554, 0x2555, 0x2556, 0x2557, 0x2558, 0x2559, 0x255a, 0x255b, 0x255c, 0x255d,
    0x255e, 0x255f, 0x2560, 0x2561, 0x2562, 0x2563, 0x2564, 0x2565, 0x2566, 0x2567,
    0x2568, 0x2569, 0x256a, 0x256b, 0x256c, 0x2580, 0x2584, 0x2588, 0x258c, 0x2590,
    0x2591, 0x2592, 0x2593, 0x25a0, 0x25b2, 0x25bc, 0x25c6, 0x25ca, 0x25cf, 0x25d7,
    0x2605, 0x260e, 0x261b, 0x261e, 0x2660, 0x2663, 0x2665, 0x2666, 0x2701, 0x2702,
    0x2703, 0x2704, 0x2706, 0x2707, 0x2708, 0x2709, 0x270c, 0x270d, 0x270e, 0x270f,
    0x2710, 0x2711, 0x2712, 0x2713, 0x2714, 0x2715, 0x2716, 0x2717, 0x2718, 0x2719,
    0x271a, 0x271b, 0x271c, 0x271d, 0x271e, 0x271f, 0x2720, 0x2721, 0x2722, 0x2723,
    0x2724, 0x2725, 0x2726, 0x2727, 0x2729, 0x272a, 0x272b, 0x272c, 0x272d, 0x272e,
    0x272f, 0x2730, 0x2731, 0x2732, 0x2733, 0x2734, 0x2735, 0x2736, 0x2737, 0x2738,
    0x2739, 0x273a, 0x273b, 0x273c, 0x273d, 0x273e, 0x273f, 0x2740, 0x2741, 0x2742,
    0x2743, 0x2744, 0x2745, 0x2746, 0x2747, 0x2748, 0x2749, 0x274a, 0x274b, 0x274d,
    0x274f, 0x2750, 0x2751, 0x2752, 0x2756, 0x2758, 0x2759, 0x275a, 0x275b, 0x275c,
    0x275d, 0x275e, 0x2761, 0x2762, 0x2763, 0x2764, 0x2765, 0x2766, 0x2767, 0x277f,
    0x2789, 0x2793, 0x2794, 0x2798, 0x2799, 0x279a, 0x279b, 0x279c, 0x279d, 0x279e,
    0x279f, 0x27a0, 0x27a1, 0x27a2, 0x27a3, 0x27a4, 0x27a5, 0x27a6, 0x27a7, 0x27a8,
    0x27a9, 0x27aa, 0x27ab, 0x27ac, 0x27ad, 0x27ae, 0x27af, 0x27b1, 0x27b2, 0x27b3,
    0x27b4, 0x27b5, 0x27b6, 0x27b7, 0x27b8, 0x27b9, 0x27ba, 0x27bb, 0x27bc, 0x27bd,
    0x27be, 0xf6d9, 0xf6da, 0xf6db, 0xf8d7, 0xf8d8, 0xf8d9, 0xf8da, 0xf8db, 0xf8dc,
    0xf8dd, 0xf8de, 0xf8df, 0xf8e0, 0xf8e1, 0xf8e2, 0xf8e3, 0xf8e4, 0xf8e5, 0xf8e6,
    0xf8e7, 0xf8e8, 0xf8e9, 0xf8ea, 0xf8eb, 0xf8ec, 0xf8ed, 0xf8ee, 0xf8ef, 0xf8f0,
    0xf8f1, 0xf8f2, 0xf8f3, 0xf8f4, 0xf8f5, 0xf8f6, 0xf8f7, 0xf8f8, 0xf8f9, 0xf8fa,
    0xf8fb, 0xf8fc, 0xf8fd, 0xf8fe, 0xfe7c, 0xfe7d,
            );
        $pattern = preg_quote(utf8_from_unicode($UTF8_SPECIAL_CHARS), '/');
        $pattern = '/[\x00-\x19'.$pattern.']/u';
    }
    
    return $pattern;
}
コード例 #9
0
 function testArray()
 {
     $unicode = array();
     $unicode[0] = 73;
     $unicode[1] = 241;
     $unicode[2] = 116;
     $unicode[3] = 235;
     $unicode[4] = 114;
     $unicode[5] = 110;
     $unicode[6] = 226;
     $unicode[7] = 116;
     $unicode[8] = 105;
     $unicode[9] = 244;
     $unicode[10] = 110;
     $unicode[11] = 224;
     $unicode[12] = 108;
     $unicode[13] = 105;
     $unicode[14] = 122;
     $unicode[15] = 230;
     $unicode[16] = 116;
     $unicode[17] = 105;
     $unicode[18] = 248;
     $unicode[19] = 110;
     $this->assertEqual(utf8_from_unicode($unicode), 'Iñtërnâtiônàlizætiøn');
 }