This function has a bug on recursion detection.
https://bugs.php.net/bug.php?id=66964
(PHP 4 >= 4.0.6, PHP 5, PHP 7)
mb_convert_variables — Convert character code in variable(s)
$to_encoding
, array|string $from_encoding
, mixed &$var
, mixed &...$vars
) : string|false
Converts
character encoding of variables var
and vars
in
encoding from_encoding
to encoding
to_encoding
.
mb_convert_variables() join strings in Array or Object to detect encoding, since encoding detection tends to fail for short strings. Therefore, it is impossible to mix encoding in single array or object.
to_encoding
The encoding that the string is being converted to.
from_encoding
from_encoding
is specified as an array
or comma separated string, it tries to detect encoding from
from-coding
. When from_encoding
is omitted, detect_order
is used.
var
var
is the reference to the
variable being converted. String, Array and Object are accepted.
mb_convert_variables() assumes all parameters
have the same encoding.
vars
Additional var
s.
The character encoding before conversion for success,
or false
for failure.
Example #1 mb_convert_variables() example
<?php
/* Convert variables $post1, $post2 to internal encoding */
$interenc = mb_internal_encoding();
$inputenc = mb_convert_variables($interenc, "ASCII,UTF-8,SJIS-win", $post1, $post2);
?>
This function has a bug on recursion detection.
https://bugs.php.net/bug.php?id=66964
Last version of this function (php 5.6.27 and php7.0.12) have a bug
https://bugs.php.net/bug.php?id=73407