Annotation of embedaddon/php/ext/mbstring/tests/mb_strlen.phpt, revision 1.1.1.1
1.1 misho 1: --TEST--
2: mb_strlen()
3: --SKIPIF--
4: <?php extension_loaded('mbstring') or die('skip mbstring not available'); ?>
5: --INI--
6: mbstring.func_overload=0
7: --FILE--
8: <?php
9: // TODO: Add more encodings
10:
11: //$debug=true;
12: ini_set('include_path', dirname(__FILE__));
13: include_once('common.inc');
14:
15: // restore detect_order to 'auto'
16: mb_detect_order('auto');
17:
18: // Test string
19: $euc_jp = '0123この文字列は日本語です。EUC-JPを使っています。0123日本語は面倒臭い。';
20: $ascii = 'abcdefghijklmnopqrstuvwxyz;]=#0123456789';
21:
22: // ASCII
23: echo "== ASCII ==\n";
24: print mb_strlen($ascii,'ASCII') . "\n";
25: print strlen($ascii) . "\n";
26:
27: // EUC-JP
28: echo "== EUC-JP ==\n";
29: print mb_strlen($euc_jp,'EUC-JP') . "\n";
30: mb_internal_encoding('EUC-JP') or print("mb_internal_encoding() failed\n");
31: print strlen($euc_jp) . "\n";
32:
33: // SJIS
34: echo "== SJIS ==\n";
35: $sjis = mb_convert_encoding($euc_jp, 'SJIS','EUC-JP');
36: print mb_strlen($sjis,'SJIS') . "\n";
37: mb_internal_encoding('SJIS') or print("mb_internal_encoding() failed\n");
38: print strlen($sjis) . "\n";
39:
40: // JIS
41: // Note: either convert_encoding or strlen has problem
42: echo "== JIS ==\n";
43: $jis = mb_convert_encoding($euc_jp, 'JIS','EUC-JP');
44: print mb_strlen($jis,'JIS') . "\n";
45: mb_internal_encoding('JIS') or print("mb_internal_encoding() failed\n");
46: print strlen($jis) . "\n";
47:
48: // UTF-8
49: // Note: either convert_encoding or strlen has problem
50: echo "== UTF-8 ==\n";
51: $utf8 = mb_convert_encoding($euc_jp, 'UTF-8','EUC-JP');
52: print mb_strlen($utf8,'UTF-8') . "\n";
53: mb_internal_encoding('UTF-8') or print("mb_internal_encoding() failed\n");
54: print strlen($utf8) . "\n";
55:
56:
57: // Wrong Parameters
58: echo "== WRONG PARAMETERS ==\n";
59: // Array
60: // Note: PHP Warning, strlen() expects parameter 1 to be string, array given
61: $r = strlen($t_ary);
62: echo $r."\n";
63: // Object
64: // Note: PHP Warning, strlen() expects parameter 1 to be string, object given
65: $r = strlen($t_obj);
66: echo $r."\n";
67: // Wrong encoding
68: mb_internal_encoding('EUC-JP');
69: $r = mb_strlen($euc_jp, 'BAD_NAME');
70: echo $r."\n";
71:
72:
73:
74:
75: ?>
76:
77: --EXPECT--
78: == ASCII ==
79: 40
80: 40
81: == EUC-JP ==
82: 43
83: 72
84: == SJIS ==
85: 43
86: 72
87: == JIS ==
88: 43
89: 90
90: == UTF-8 ==
91: 43
92: 101
93: == WRONG PARAMETERS ==
94: ERR: Warning
95:
96: ERR: Warning
97:
98: ERR: Warning
99:
100:
101:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>