Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Multibyte String Functions : mb_check_encoding

mb_check_encoding

Check if the string is valid for the specified encoding (PHP 4 >= 4.4.3, PHP 5 >= 5.1.3)
bool mb_check_encoding ( [string var [, string encoding]] )

mb_check_encoding() checks if the specified byte stream is valid for the specified encoding. It is useful to prevent so-called "Invalid Encoding Attack".

Parameters

var

byte stream to check. If it is omitted, this function checks all the input from the beginning of the request.

encoding

Expected encoding.

Return Values

Returns TRUE on success or FALSE on failure.

Code Examples / Notes » mb_check_encoding

olexa riznyk

This function returns true incorrectly sometimes (at least when internal encoding is UTF-8 and encoding being checked for is Windows-1251, and PHP version 4.4.4 on FreeBSD 6.2 STABLE). This bug was not answered in bug reporting yet, so here is a workaround:
Instead of checking for this:
<?php
mb_check_encoding($var, $destination_encoding)
?>
check for this:
<?php
mb_check_encoding($var, $destination_encoding) && mb_substr_count($var, '?', $source_encoding) == mb_substr_count(mb_convert_encoding($var, $destination_encoding, $source_encoding), '?', $destination_encoding)
?>
The idea is to count question mark characters ('?') in original value and converted value, because mb_convert_encoding function uses question marks to substitute characters that are not valid in destination encoding.


Change Language


Follow Navioo On Twitter
mb_check_encoding
mb_convert_case
mb_convert_encoding
mb_convert_kana
mb_convert_variables
mb_decode_mimeheader
mb_decode_numericentity
mb_detect_encoding
mb_detect_order
mb_encode_mimeheader
mb_encode_numericentity
mb_ereg_match
mb_ereg_replace
mb_ereg_search_getpos
mb_ereg_search_getregs
mb_ereg_search_init
mb_ereg_search_pos
mb_ereg_search_regs
mb_ereg_search_setpos
mb_ereg_search
mb_ereg
mb_eregi_replace
mb_eregi
mb_get_info
mb_http_input
mb_http_output
mb_internal_encoding
mb_language
mb_output_handler
mb_parse_str
mb_preferred_mime_name
mb_regex_encoding
mb_regex_set_options
mb_send_mail
mb_split
mb_strcut
mb_strimwidth
mb_stripos
mb_stristr
mb_strlen
mb_strpos
mb_strrchr
mb_strrichr
mb_strripos
mb_strrpos
mb_strstr
mb_strtolower
mb_strtoupper
mb_strwidth
mb_substitute_character
mb_substr_count
mb_substr
eXTReMe Tracker