Skip to content

Commit e978952

Browse files
committed
iconv: deprecated iconv_set_encoding() and iconv_get_encoding()
1 parent 0c6b838 commit e978952

File tree

5 files changed

+76
-3
lines changed

5 files changed

+76
-3
lines changed

ext/iconv/iconv.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include "main/php_output.h"
2626
#include "SAPI.h"
2727
#include "php_ini.h"
28+
#include "zend_attributes.h"
2829

2930
#include <stdlib.h>
3031
#include <errno.h>

ext/iconv/iconv.stub.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,10 @@ function iconv_mime_decode_headers(string $headers, int $mode = 0, ?string $enco
4747
/** @refcount 1 */
4848
function iconv(string $from_encoding, string $to_encoding, string $string): string|false {}
4949

50+
#[\Deprecated(since: '5.6', message: 'use internal_encoding, input_encoding, and output_encoding INI settings instead')]
5051
function iconv_set_encoding(string $type, string $encoding): bool {}
5152

53+
#[\Deprecated(since: '5.6', message: 'use internal_encoding, input_encoding, and output_encoding INI settings instead')]
5254
/**
5355
* @return array<string, string>|string|false
5456
* @refcount 1

ext/iconv/iconv_arginfo.h

Lines changed: 18 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
--TEST--
2+
iconv encoding deprecated
3+
--EXTENSIONS--
4+
iconv
5+
--FILE--
6+
<?php
7+
8+
iconv_set_encoding("internal_encoding", "UTF-8");
9+
iconv_set_encoding("output_encoding", "UTF-8");
10+
iconv_set_encoding("input_encoding", "UTF-8");
11+
12+
var_dump( iconv_get_encoding('internal_encoding') );
13+
var_dump( iconv_get_encoding('output_encoding') );
14+
var_dump( iconv_get_encoding('input_encoding') );
15+
var_dump( iconv_get_encoding('all') );
16+
17+
?>
18+
--EXPECTF--
19+
Deprecated: Function iconv_set_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
20+
21+
Deprecated: iconv_set_encoding(): Use of iconv.internal_encoding is deprecated in %s on line %d
22+
23+
Deprecated: Function iconv_set_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
24+
25+
Deprecated: iconv_set_encoding(): Use of iconv.output_encoding is deprecated in %s on line %d
26+
27+
Deprecated: Function iconv_set_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
28+
29+
Deprecated: iconv_set_encoding(): Use of iconv.input_encoding is deprecated in %s on line %d
30+
31+
Deprecated: Function iconv_get_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
32+
string(5) "UTF-8"
33+
34+
Deprecated: Function iconv_get_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
35+
string(5) "UTF-8"
36+
37+
Deprecated: Function iconv_get_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
38+
string(5) "UTF-8"
39+
40+
Deprecated: Function iconv_get_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
41+
array(3) {
42+
["input_encoding"]=>
43+
string(5) "UTF-8"
44+
["output_encoding"]=>
45+
string(5) "UTF-8"
46+
["internal_encoding"]=>
47+
string(5) "UTF-8"
48+
}

ext/iconv/tests/iconv_set_encoding-charset-length-cve-2007-4840.phpt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,18 @@ var_dump(iconv_set_encoding("output_encoding", $a));
1010
var_dump(iconv_set_encoding("internal_encoding", $a));
1111
?>
1212
--EXPECTF--
13+
14+
Deprecated: Function iconv_set_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
15+
1316
Warning: iconv_set_encoding(): Encoding parameter exceeds the maximum allowed length of 64 characters in %s on line %d
1417
bool(false)
1518

19+
Deprecated: Function iconv_set_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
20+
1621
Warning: iconv_set_encoding(): Encoding parameter exceeds the maximum allowed length of 64 characters in %s on line %d
1722
bool(false)
1823

24+
Deprecated: Function iconv_set_encoding() is deprecated since 5.6, use internal_encoding, input_encoding, and output_encoding INI settings instead in %s on line %d
25+
1926
Warning: iconv_set_encoding(): Encoding parameter exceeds the maximum allowed length of 64 characters in %s on line %d
2027
bool(false)

0 commit comments

Comments
 (0)