摘要:檢查字符串在指定的編碼里是否有效檢查指定的字節(jié)流在指定的編碼里是否有效。它能有效避免所謂的無(wú)效編碼攻擊。要檢查的字節(jié)流。成功時(shí)返回,或者在失敗時(shí)返回。輸出空輸出編碼的字符串設(shè)置文件編碼為博客園和。
mb_check_encoding
Description(PHP 4 >= 4.4.3, PHP 5 >= 5.1.3, PHP 7)
mb_check_encoding — Check if the string is valid for the specified encoding
mb_check_encoding — 檢查字符串在指定的編碼里是否有效
bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] ) // Checks if the specified byte stream is valid for the specified encoding. // It is useful to prevent so-called "Invalid Encoding Attack". // 檢查指定的字節(jié)流在指定的編碼里是否有效。它能有效避免所謂的“無(wú)效編碼攻擊(Invalid Encoding Attack)”。Parameters var
The byte stream to check. If it is omitted, this function checks all the input from the beginning of the request.
要檢查的字節(jié)流。如果省略了這個(gè)參數(shù),此函數(shù)會(huì)檢查所有來(lái)自最初請(qǐng)求所有的輸入。
encodingThe expected encoding.
期望的編碼。
Return ValuesReturns TRUE on success or FALSE on failure.
成功時(shí)返回 TRUE, 或者在失敗時(shí)返回 FALSE。
Examples設(shè)置文件編碼為gbk*/ $str = "博客園和github。"; echo mb_check_encoding( $str, "utf-8" ) . PHP_EOL; //輸出空 echo mb_check_encoding( $str, "gbk" ) . PHP_EOL; //輸出1 /**utf-8編碼的字符串 --> 設(shè)置文件編碼為utf-8*/ $str = "博客園和github。"; echo mb_check_encoding( $str, "utf-8" ) . PHP_EOL; //1 echo mb_check_encoding( $str, "gbk" ) . PHP_EOL; //輸出空 $utf8Str = "我abc是誰(shuí)."; echo mb_check_encoding( $utf8Str, "utf-8" ) . PHP_EOL; //輸出1 //如果有中文標(biāo)點(diǎn)符號(hào)則為空!!! echo mb_check_encoding( $utf8Str, "gbk" ) . PHP_EOL; //輸出1 /**自定義檢測(cè)字符串編碼是否為utf-8*/ function is_utf8( $str ) { return (bool) preg_match( "http://u", serialize($str) ); } echo "hello 中國(guó)!" .is_utf8( "hello 中國(guó)!" ) . PHP_EOL; //1 function check_utf8( $str ) { $len = strlen( $str ); for ( $i = 0; $i < $len; $i ++ ) { $c = ord( $str[ $i ] ); if ( $c > 128 ) { if ( ( $c > 247 ) ) { return false; } elseif ( $c > 239 ) { $bytes = 4; } elseif ( $c > 223 ) { $bytes = 3; } elseif ( $c > 191 ) { $bytes = 2; } else { return false; } if ( ( $i + $bytes ) > $len ) { return false; } while ( $bytes > 1 ) { $i ++; $b = ord( $str[ $i ] ); if ( $b < 128 || $b > 191 ) { return false; } $bytes --; } } } return true; } // end of check_utf8 echo check_utf8("hello 中國(guó)").PHP_EOL; // 1 echo check_utf8( "x00xE3").PHP_EOL; //空 /** check a strings encoded value */ function checkEncoding( $string, $string_encoding ) { $fs = $string_encoding == "UTF-8" ? "UTF-32" : $string_encoding; $ts = $string_encoding == "UTF-32" ? "UTF-8" : $string_encoding; return $string === mb_convert_encoding( mb_convert_encoding( $string, $fs, $ts ), $ts, $fs ); } /* test 1 variables */ $string = "x00x81"; $encoding = "Shift_JIS"; /* test 1 mb_check_encoding (test for bad byte stream) */ if ( true === mb_check_encoding( $string, $encoding ) ) { echo "valid (" . $encoding . ") encoded byte stream!" . PHP_EOL; } else { echo "invalid (" . $encoding . ") encoded byte stream!" . PHP_EOL; } /* test 1 checkEncoding (test for bad byte sequence(s)) */ if ( true === checkEncoding( $string, $encoding ) ) { echo "valid (" . $encoding . ") encoded byte sequence!" . PHP_EOL; } else { echo "invalid (" . $encoding . ") encoded byte sequence!" . PHP_EOL; } /* test 2 */ /* test 2 variables */ $string = "x00xE3"; $encoding = "UTF-8"; /* test 2 mb_check_encoding (test for bad byte stream) */ if ( true === mb_check_encoding( $string, $encoding ) ) { echo "valid (" . $encoding . ") encoded byte stream!" . PHP_EOL; } else { echo "invalid (" . $encoding . ") encoded byte stream!" . PHP_EOL; } /* test 2 checkEncoding (test for bad byte sequence(s)) */ if ( true === checkEncoding( $string, $encoding ) ) { echo "valid (" . $encoding . ") encoded byte sequence!" . PHP_EOL; } else { echo "invalid (" . $encoding . ") encoded byte sequence!" . PHP_EOL; }文章參考
http://php.net/manual/zh/func...
轉(zhuǎn)載注明出處文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/28179.html
摘要:一的會(huì)話也稱為。如果啟動(dòng)會(huì)話成功,則函數(shù)返回,否則返回。會(huì)話啟動(dòng)后就可以載入該會(huì)話已經(jīng)注冊(cè)的會(huì)話變量以便使用。但數(shù)組創(chuàng)建的在會(huì)話結(jié)束后就會(huì)失效。預(yù)告本周三更新面試常考之網(wǎng)絡(luò)協(xié)議,敬請(qǐng)期待。 你好,是我琉憶,歡迎您來(lái)到PHP面試專欄。本周(2019.2-25至3-1)的一三五更新的文章如下: 周一:PHP面試常考之會(huì)話控制周三:PHP面試常考之網(wǎng)絡(luò)協(xié)議周五:PHP面試常考題之會(huì)話控制和...
摘要:策略模式介紹策略模式定義了一系列的算法,并將每一個(gè)算法封裝起來(lái),而且使它們還可以相互替換。策略模式讓算法獨(dú)立于使用它的客戶而獨(dú)立變化。使用策略模式的好處策略模式提供了管理相關(guān)的算法族的辦法。使用策略模式可以避免使用多重條件轉(zhuǎn)移語(yǔ)句。 你好,是我琉憶,PHP程序員面試筆試系列圖書的作者。 本周(2019.3.11至3.15)的一三五更新的文章如下: 周一:PHP面試常考之設(shè)計(jì)模式——工...
摘要:它包含兩類腳本,和地址腳本對(duì)文件定義了一系列的代碼規(guī)范通常使用官方的代碼規(guī)范標(biāo)準(zhǔn),比如的,能夠檢測(cè)出不符合代碼規(guī)范的代碼并發(fā)出警告或報(bào)錯(cuò)可設(shè)置報(bào)錯(cuò)等級(jí)。腳本能自動(dòng)修正代碼格式上不符合規(guī)范的部分。 Last-Modified: 2019年5月10日13:59:27 參考鏈接 PHP開(kāi)發(fā)規(guī)范之使用phpcbf腳本自動(dòng)修正代碼格式 在PhpStorm中使用PSR2編碼規(guī)范phpcbf腳本自...
摘要:我們今天也來(lái)做一個(gè)萬(wàn)能遙控器設(shè)計(jì)模式適配器模式將一個(gè)類的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。今天要介紹的仍然是創(chuàng)建型設(shè)計(jì)模式的一種建造者模式。設(shè)計(jì)模式的理論知識(shí)固然重要,但 計(jì)算機(jī)程序的思維邏輯 (54) - 剖析 Collections - 設(shè)計(jì)模式 上節(jié)我們提到,類 Collections 中大概有兩類功能,第一類是對(duì)容器接口對(duì)象進(jìn)行操作,第二類是返回一個(gè)容器接口對(duì)象,上節(jié)我們介紹了...
閱讀 3921·2021-11-17 09:33
閱讀 3283·2021-10-08 10:05
閱讀 3111·2021-09-22 15:36
閱讀 1140·2021-09-06 15:02
閱讀 2772·2019-08-29 12:45
閱讀 1590·2019-08-26 13:40
閱讀 3399·2019-08-26 13:37
閱讀 420·2019-08-26 13:37