Browse Source
Merge branch 'PHP-7.1' into PHP-7.2
Merge branch 'PHP-7.1' into PHP-7.2
* PHP-7.1: Fixed bug #75574 putenv does not work properly if parameter contains non-ASCII unicode characterpull/2957/head
3 changed files with 153 additions and 9 deletions
-
51ext/standard/basic_functions.c
-
61ext/standard/tests/general_functions/putenv_bug75574_cp936_win.phpt
-
50ext/standard/tests/general_functions/putenv_bug75574_utf8.phpt
@ -0,0 +1,61 @@ |
|||
--TEST-- |
|||
Bug #75574 putenv does not work properly if parameter contains non-ASCII unicode character, cp936 Windows |
|||
--SKIPIF-- |
|||
<?php |
|||
|
|||
if (substr(PHP_OS, 0, 3) != 'WIN') { |
|||
die("skip Valid only on Windows"); |
|||
} |
|||
if (!sapi_windows_cp_set(936)) { |
|||
die("skip Required CP 936 or compatible"); |
|||
} |
|||
|
|||
?> |
|||
--INI-- |
|||
internal_encoding=cp936 |
|||
--FILE-- |
|||
<?php |
|||
/* |
|||
#vim: set fileencoding=cp936 |
|||
#vim: set encoding=cp936 |
|||
*/ |
|||
|
|||
var_dump(putenv('FOO=가'), getenv("FOO")); |
|||
var_dump(putenv('FOO=가가'), getenv("FOO")); |
|||
var_dump(putenv('FOO=가가가'), getenv("FOO")); |
|||
var_dump(putenv('FOO=가가가가'), getenv("FOO")); |
|||
|
|||
var_dump(putenv('FOO=가a'), getenv("FOO")); |
|||
var_dump(putenv('FOO=가a가'), getenv("FOO")); |
|||
var_dump(putenv('FOO=가a가a'), getenv("FOO")); |
|||
var_dump(putenv('FOO=가a가a가'), getenv("FOO")); |
|||
var_dump(putenv('FOO=가a가가'), getenv("FOO")); |
|||
var_dump(putenv('FOO=가a가가가'), getenv("FOO")); |
|||
var_dump(putenv('FOO=가a가가가가'), getenv("FOO")); |
|||
|
|||
?> |
|||
===DONE=== |
|||
--EXPECTF-- |
|||
bool(true) |
|||
string(2) "가" |
|||
bool(true) |
|||
string(4) "가가" |
|||
bool(true) |
|||
string(6) "가가가" |
|||
bool(true) |
|||
string(8) "가가가가" |
|||
bool(true) |
|||
string(3) "가a" |
|||
bool(true) |
|||
string(5) "가a가" |
|||
bool(true) |
|||
string(6) "가a가a" |
|||
bool(true) |
|||
string(8) "가a가a가" |
|||
bool(true) |
|||
string(7) "가a가가" |
|||
bool(true) |
|||
string(9) "가a가가가" |
|||
bool(true) |
|||
string(11) "가a가가가가" |
|||
===DONE=== |
|||
@ -0,0 +1,50 @@ |
|||
--TEST-- |
|||
Bug #75574 putenv does not work properly if parameter contains non-ASCII unicode character, UTF-8 |
|||
--INI-- |
|||
internal_encoding=utf-8 |
|||
--FILE-- |
|||
<?php |
|||
/* |
|||
#vim: set fileencoding=utf-8 |
|||
#vim: set encoding=utf-8 |
|||
*/ |
|||
|
|||
var_dump(putenv('FOO=啊'), getenv("FOO")); |
|||
var_dump(putenv('FOO=啊啊'), getenv("FOO")); |
|||
var_dump(putenv('FOO=啊啊啊'), getenv("FOO")); |
|||
var_dump(putenv('FOO=啊啊啊啊'), getenv("FOO")); |
|||
|
|||
var_dump(putenv('FOO=啊a'), getenv("FOO")); |
|||
var_dump(putenv('FOO=啊a啊'), getenv("FOO")); |
|||
var_dump(putenv('FOO=啊a啊a'), getenv("FOO")); |
|||
var_dump(putenv('FOO=啊a啊a啊'), getenv("FOO")); |
|||
var_dump(putenv('FOO=啊a啊啊'), getenv("FOO")); |
|||
var_dump(putenv('FOO=啊a啊啊啊'), getenv("FOO")); |
|||
var_dump(putenv('FOO=啊a啊啊啊啊'), getenv("FOO")); |
|||
|
|||
?> |
|||
===DONE=== |
|||
--EXPECTF-- |
|||
bool(true) |
|||
string(3) "啊" |
|||
bool(true) |
|||
string(6) "啊啊" |
|||
bool(true) |
|||
string(9) "啊啊啊" |
|||
bool(true) |
|||
string(12) "啊啊啊啊" |
|||
bool(true) |
|||
string(4) "啊a" |
|||
bool(true) |
|||
string(7) "啊a啊" |
|||
bool(true) |
|||
string(8) "啊a啊a" |
|||
bool(true) |
|||
string(11) "啊a啊a啊" |
|||
bool(true) |
|||
string(10) "啊a啊啊" |
|||
bool(true) |
|||
string(13) "啊a啊啊啊" |
|||
bool(true) |
|||
string(16) "啊a啊啊啊啊" |
|||
===DONE=== |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue