Skip to content

Commit 6317f3c

Browse files
committed
Remove deprecated INI setting mbstring.internal_encoding
1 parent c4b7064 commit 6317f3c

14 files changed

+9
-157
lines changed

NEWS

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@ Intl:
1414
. Added IntlDateFormatter::PATTERN constant. (David Carlier)
1515

1616
MBString:
17-
. Long-deprecated INI settings mbstring.http_input and mbstring.http_output
18-
have been removed. (Alex Dowad)
17+
. Long-deprecated INI settings mbstring.http_input, mbstring.http_output,
18+
and mbstring.internal_encoding have been removed. (Alex Dowad)
1919

2020
Opcache:
2121
. Added large shared segments support for FreeBSD. (David Carlier)

ext/mbstring/mbstring.c

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -778,28 +778,6 @@ static int _php_mb_ini_mbstring_internal_encoding_set(const char *new_value, siz
778778
}
779779
/* }}} */
780780

781-
/* {{{ static PHP_INI_MH(OnUpdate_mbstring_internal_encoding) */
782-
static PHP_INI_MH(OnUpdate_mbstring_internal_encoding)
783-
{
784-
if (new_value) {
785-
php_error_docref("ref.mbstring", E_DEPRECATED, "Use of mbstring.internal_encoding is deprecated");
786-
}
787-
788-
if (OnUpdateString(entry, new_value, mh_arg1, mh_arg2, mh_arg3, stage) == FAILURE) {
789-
return FAILURE;
790-
}
791-
792-
if (new_value && ZSTR_LEN(new_value)) {
793-
MBSTRG(internal_encoding_set) = 1;
794-
return _php_mb_ini_mbstring_internal_encoding_set(ZSTR_VAL(new_value), ZSTR_LEN(new_value));
795-
} else {
796-
const char *encoding = php_get_internal_encoding();
797-
MBSTRG(internal_encoding_set) = 0;
798-
return _php_mb_ini_mbstring_internal_encoding_set(encoding, strlen(encoding));
799-
}
800-
}
801-
/* }}} */
802-
803781
/* {{{ static PHP_INI_MH(OnUpdate_mbstring_substitute_character) */
804782
static PHP_INI_MH(OnUpdate_mbstring_substitute_character)
805783
{
@@ -893,7 +871,6 @@ static PHP_INI_MH(OnUpdate_mbstring_http_output_conv_mimetypes)
893871
PHP_INI_BEGIN()
894872
PHP_INI_ENTRY("mbstring.language", "neutral", PHP_INI_ALL, OnUpdate_mbstring_language)
895873
PHP_INI_ENTRY("mbstring.detect_order", NULL, PHP_INI_ALL, OnUpdate_mbstring_detect_order)
896-
STD_PHP_INI_ENTRY("mbstring.internal_encoding", NULL, PHP_INI_ALL, OnUpdate_mbstring_internal_encoding, internal_encoding_name, zend_mbstring_globals, mbstring_globals)
897874
PHP_INI_ENTRY("mbstring.substitute_character", NULL, PHP_INI_ALL, OnUpdate_mbstring_substitute_character)
898875

899876
STD_PHP_INI_BOOLEAN("mbstring.encoding_translation", "0",

ext/mbstring/tests/bug48697.phpt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ Bug #48697 (mb_internal_encoding() value gets reset by parse_str() or mb_parse_s
44
mbstring
55
--FILE--
66
<?php
7-
ini_set('mbstring.internal_encoding', 'ISO-8859-15');
87
ini_set('mbstring.encoding_translation', true);
98
var_dump(mb_internal_encoding());
109
mb_internal_encoding('UTF-8');
@@ -17,8 +16,7 @@ parse_str('a=b', $ary);
1716
var_dump(mb_internal_encoding());
1817
?>
1918
--EXPECTF--
20-
Deprecated: ini_set(): Use of mbstring.internal_encoding is deprecated in %s on line %d
21-
string(11) "ISO-8859-15"
19+
string(5) "UTF-8"
2220
string(5) "UTF-8"
2321
string(5) "UTF-8"
2422
string(5) "UTF-8"

ext/mbstring/tests/ini_encoding.phpt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ default_charset=Shift_JIS
88
internal_encoding=
99
input_encoding=
1010
output_encoding=
11-
mbstring.internal_encoding=Shift_JIS
1211
--FILE--
1312
<?php
1413
echo "Getting INI\n";
@@ -17,23 +16,20 @@ var_dump(ini_get('internal_encoding'));
1716
var_dump(ini_get('input_encoding'));
1817
var_dump(ini_get('output_encoding'));
1918

20-
var_dump(ini_get('mbstring.internal_encoding'));
2119
var_dump(mb_internal_encoding());
2220

2321
echo "Setting INI\n";
2422
var_dump(ini_set('default_charset', 'UTF-8'));
2523
var_dump(ini_set('internal_encoding', 'UTF-8'));
2624
var_dump(ini_set('input_encoding', 'UTF-8'));
2725
var_dump(ini_set('output_encoding', 'UTF-8'));
28-
var_dump(ini_set('mbstring.internal_encoding', 'UTF-8'));
2926

3027
echo "Getting INI\n";
3128
var_dump(ini_get('default_charset'));
3229
var_dump(ini_get('internal_encoding'));
3330
var_dump(ini_get('input_encoding'));
3431
var_dump(ini_get('output_encoding'));
3532

36-
var_dump(ini_get('mbstring.internal_encoding'));
3733
var_dump(mb_internal_encoding());
3834
?>
3935
--EXPECT--
@@ -42,18 +38,15 @@ string(9) "Shift_JIS"
4238
string(0) ""
4339
string(0) ""
4440
string(0) ""
45-
string(9) "Shift_JIS"
4641
string(4) "SJIS"
4742
Setting INI
4843
string(9) "Shift_JIS"
4944
string(0) ""
5045
string(0) ""
5146
string(0) ""
52-
string(9) "Shift_JIS"
5347
Getting INI
5448
string(5) "UTF-8"
5549
string(5) "UTF-8"
5650
string(5) "UTF-8"
5751
string(5) "UTF-8"
5852
string(5) "UTF-8"
59-
string(5) "UTF-8"

ext/mbstring/tests/ini_encoding2.phpt

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ default_charset=
88
internal_encoding=EUC-JP
99
input_encoding=
1010
output_encoding=
11-
mbstring.internal_encoding=
1211
--FILE--
1312
<?php
1413
echo "Getting INI\n";
@@ -17,23 +16,20 @@ var_dump(ini_get('internal_encoding'));
1716
var_dump(ini_get('input_encoding'));
1817
var_dump(ini_get('output_encoding'));
1918

20-
var_dump(ini_get('mbstring.internal_encoding'));
2119
var_dump(mb_internal_encoding());
2220

2321
echo "Setting INI\n";
2422
var_dump(ini_set('default_charset', 'UTF-8'));
2523
var_dump(ini_set('internal_encoding', 'UTF-8'));
2624
var_dump(ini_set('input_encoding', 'UTF-8'));
2725
var_dump(ini_set('output_encoding', 'UTF-8'));
28-
var_dump(ini_set('mbstring.internal_encoding', 'UTF-8'));
2926

3027
echo "Getting INI\n";
3128
var_dump(ini_get('default_charset'));
3229
var_dump(ini_get('internal_encoding'));
3330
var_dump(ini_get('input_encoding'));
3431
var_dump(ini_get('output_encoding'));
3532

36-
var_dump(ini_get('mbstring.internal_encoding'));
3733
var_dump(mb_internal_encoding());
3834
?>
3935
--EXPECT--
@@ -42,18 +38,15 @@ string(0) ""
4238
string(6) "EUC-JP"
4339
string(0) ""
4440
string(0) ""
45-
string(0) ""
4641
string(6) "EUC-JP"
4742
Setting INI
4843
string(0) ""
4944
string(6) "EUC-JP"
5045
string(0) ""
5146
string(0) ""
52-
string(0) ""
5347
Getting INI
5448
string(5) "UTF-8"
5549
string(5) "UTF-8"
5650
string(5) "UTF-8"
5751
string(5) "UTF-8"
5852
string(5) "UTF-8"
59-
string(5) "UTF-8"

ext/mbstring/tests/ini_mbstring_invalid.phpt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ Invalid values for MBString INI settings
44
mbstring
55
--INI--
66
mbstring.language=UNKNOWN_LANGUAGE
7-
mbstring.internal_encoding=UNKNOWN_ENCODING
87
mbstring.detect_order=UTF-8,DETECT_ORDER,ASCII
98
mbstring.http_output_conv_mimetypes=UNKNOWN_MIME_TYPE_OUTPUT
109
mbstring.substitute_character=U+3000,NON_EXISTING_CHARACTER,JIS+7E7E
@@ -16,7 +15,3 @@ mbstring.strict_detection=BOOL_STRICT_DETECTION
1615
?>
1716
--EXPECT--
1817
Warning: PHP Startup: INI setting contains invalid encoding "DETECT_ORDER" in Unknown on line 0
19-
20-
Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
21-
22-
Warning: PHP Startup: Unknown encoding "UNKNOWN_ENCODING" in ini setting in Unknown on line 0

ext/mbstring/tests/internal_encoding.phpt

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,11 @@ internal_encoding=iso-8859-1
1010
var_dump(mb_internal_encoding());
1111
var_dump(mb_strlen("\xc3\xb6"));
1212

13-
ini_set('mbstring.internal_encoding', 'utf-8');
14-
15-
var_dump(mb_internal_encoding());
16-
var_dump(mb_strlen("\xc3\xb6"));
17-
18-
// mbstring.internal_encoding is set, this has no effect
1913
ini_set('internal_encoding', 'iso-8859-2');
2014

2115
var_dump(mb_internal_encoding());
2216
var_dump(mb_strlen("\xc3\xb6"));
2317

24-
// mbstring.internal_encoding is unset, pick up internal_encoding again
25-
ini_set('mbstring.internal_encoding', '');
26-
27-
var_dump(mb_internal_encoding());
28-
var_dump(mb_strlen("\xc3\xb6"));
29-
3018
mb_internal_encoding('utf-8');
3119

3220
var_dump(mb_internal_encoding());
@@ -38,31 +26,13 @@ ini_set('internal_encoding', 'iso-8859-3');
3826
var_dump(mb_internal_encoding());
3927
var_dump(mb_strlen("\xc3\xb6"));
4028

41-
// mbstring.internal_encoding is unset, pick up internal_encoding again
42-
ini_set('mbstring.internal_encoding', '');
43-
44-
var_dump(mb_internal_encoding());
45-
var_dump(mb_strlen("\xc3\xb6"));
46-
4729
?>
4830
--EXPECTF--
4931
string(10) "ISO-8859-1"
5032
int(2)
51-
52-
Deprecated: ini_set(): Use of mbstring.internal_encoding is deprecated in %s on line %d
53-
string(5) "UTF-8"
54-
int(1)
55-
string(5) "UTF-8"
56-
int(1)
57-
58-
Deprecated: ini_set(): Use of mbstring.internal_encoding is deprecated in %s on line %d
5933
string(10) "ISO-8859-2"
6034
int(2)
6135
string(5) "UTF-8"
6236
int(1)
6337
string(5) "UTF-8"
6438
int(1)
65-
66-
Deprecated: ini_set(): Use of mbstring.internal_encoding is deprecated in %s on line %d
67-
string(10) "ISO-8859-3"
68-
int(2)

ext/mbstring/tests/mb_get_info.phpt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ mbstring
55
--INI--
66
mbstring.encoding_translation=1
77
mbstring.language=Korean
8-
mbstring.internal_encoding=UTF-8
98
mbstring.http_output_conv_mimetypes=abc
109
mbstring.detect_order=UTF-8,ISO-8859-15,ISO-8859-1,ASCII
1110
mbstring.substitute_character=123
@@ -21,7 +20,6 @@ foreach (array_keys($result) as $key) {
2120
}
2221
?>
2322
--EXPECT--
24-
Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
2523
array(13) {
2624
["internal_encoding"]=>
2725
string(5) "UTF-8"

ext/mbstring/tests/mb_internal_encoding_basic2.phpt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ var_dump(ini_get('default_charset'));
1919
var_dump(ini_get('input_encoding'));
2020
var_dump(ini_get('output_encoding'));
2121
var_dump(ini_get('internal_encoding'));
22-
var_dump(ini_get('mbstring.internal_encoding'));
2322

2423
var_dump(mb_internal_encoding()); //default internal encoding
2524
var_dump(mb_internal_encoding('UTF-8')); //change internal encoding to UTF-8
@@ -33,7 +32,6 @@ string(0) ""
3332
string(10) "ISO-8859-1"
3433
string(10) "ISO-8859-1"
3534
string(10) "ISO-8859-1"
36-
string(0) ""
3735
string(10) "ISO-8859-1"
3836
bool(true)
3937
string(5) "UTF-8"

ext/mbstring/tests/mb_internal_encoding_ini_basic2.phpt

Lines changed: 0 additions & 25 deletions
This file was deleted.

ext/mbstring/tests/mb_internal_encoding_ini_invalid_encoding.phpt

Lines changed: 0 additions & 27 deletions
This file was deleted.

ext/standard/tests/strings/htmlentities25.phpt

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ htmlentities() should not be influenced by mb_internal_encoding()
33
--INI--
44
default_charset=
55
internal_encoding=
6-
mbstring.internal_encoding=ISO-8859-1
76
--EXTENSIONS--
87
mbstring
98
--FILE--
@@ -13,5 +12,4 @@ var_dump(htmlentities('äöü'));
1312

1413
?>
1514
--EXPECT--
16-
Deprecated: PHP Startup: Use of mbstring.internal_encoding is deprecated in Unknown on line 0
1715
string(18) "&auml;&ouml;&uuml;"

php.ini-development

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1641,15 +1641,7 @@ zend.assertions = 1
16411641
; https://php.net/mbstring.language
16421642
;mbstring.language = Japanese
16431643

1644-
; Use of this INI entry is deprecated, use global internal_encoding instead.
1645-
; internal/script encoding.
1646-
; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)
1647-
; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
1648-
; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
1649-
;mbstring.internal_encoding =
1650-
1651-
; enable automatic encoding translation according to
1652-
; mbstring.internal_encoding setting. Input chars are
1644+
; enable automatic encoding translation. Input chars are
16531645
; converted to internal encoding by setting this to On.
16541646
; Note: Do _not_ use automatic encoding translation for
16551647
; portable libs/applications.
@@ -1692,8 +1684,8 @@ zend.assertions = 1
16921684
[exif]
16931685
; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
16941686
; With mbstring support this will automatically be converted into the encoding
1695-
; given by corresponding encode setting. When empty mbstring.internal_encoding
1696-
; is used. For the decode settings you can distinguish between motorola and
1687+
; given by corresponding encode setting.
1688+
; For the decode settings you can distinguish between motorola and
16971689
; intel byte order. A decode setting cannot be empty.
16981690
; https://php.net/exif.encode-unicode
16991691
;exif.encode_unicode = ISO-8859-15

php.ini-production

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1643,15 +1643,7 @@ zend.assertions = -1
16431643
; https://php.net/mbstring.language
16441644
;mbstring.language = Japanese
16451645

1646-
; Use of this INI entry is deprecated, use global internal_encoding instead.
1647-
; internal/script encoding.
1648-
; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*)
1649-
; If empty, default_charset or internal_encoding or iconv.internal_encoding is used.
1650-
; The precedence is: default_charset < internal_encoding < iconv.internal_encoding
1651-
;mbstring.internal_encoding =
1652-
1653-
; enable automatic encoding translation according to
1654-
; mbstring.internal_encoding setting. Input chars are
1646+
; enable automatic encoding translation. Input chars are
16551647
; converted to internal encoding by setting this to On.
16561648
; Note: Do _not_ use automatic encoding translation for
16571649
; portable libs/applications.
@@ -1694,8 +1686,8 @@ zend.assertions = -1
16941686
[exif]
16951687
; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS.
16961688
; With mbstring support this will automatically be converted into the encoding
1697-
; given by corresponding encode setting. When empty mbstring.internal_encoding
1698-
; is used. For the decode settings you can distinguish between motorola and
1689+
; given by corresponding encode setting.
1690+
; For the decode settings you can distinguish between motorola and
16991691
; intel byte order. A decode setting cannot be empty.
17001692
; https://php.net/exif.encode-unicode
17011693
;exif.encode_unicode = ISO-8859-15

0 commit comments

Comments
 (0)