mbstring_binary_safe_encoding()
Sets the mbstring internal encoding to a binary safe encoding when func_overload is enabled.
When mbstring.func_overload is in use for multi-byte encodings, the results from strlen() and similar functions respect the utf8 characters, causing binary data to return incorrect lengths.
This function overrides the mbstring encoding to a binary-safe encoding, and resets it to the users expected encoding afterwards through the reset_mbstring_encoding function.
It is safe to recursively call this function, however each mbstring_binary_safe_encoding() must be followed up with an equal number of reset_mbstring_encoding()
Хуков нет.
Возвращает
null
. Ничего (null).
Использование
mbstring_binary_safe_encoding( $reset );
- $reset(true|false)
- Whether to reset the encoding back to a previously-set encoding.
По умолчанию: false
Заметки
- Смотрите: reset_mbstring_encoding()
Список изменений
С версии 3.7.0 | Введена. |
Код mbstring_binary_safe_encoding() mbstring binary safe encoding WP 6.7.1
function mbstring_binary_safe_encoding( $reset = false ) { static $encodings = array(); static $overloaded = null; if ( is_null( $overloaded ) ) { if ( function_exists( 'mb_internal_encoding' ) && ( (int) ini_get( 'mbstring.func_overload' ) & 2 ) // phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated ) { $overloaded = true; } else { $overloaded = false; } } if ( false === $overloaded ) { return; } if ( ! $reset ) { $encoding = mb_internal_encoding(); array_push( $encodings, $encoding ); mb_internal_encoding( 'ISO-8859-1' ); } if ( $reset && $encodings ) { $encoding = array_pop( $encodings ); mb_internal_encoding( $encoding ); } }