日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php stream encoding,PHP之mb_check_encoding使用方法分享

發布時間:2024/9/27 php 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php stream encoding,PHP之mb_check_encoding使用方法分享 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

本文主要和大家分享mb_check_encoding使用方法,希望能幫助到大家。

mb_check_encoding(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 — 檢查字符串在指定的編碼里是否有效

Descriptionbool 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".

// 檢查指定的字節流在指定的編碼里是否有效。它能有效避免所謂的“無效編碼攻擊(Invalid Encoding Attack)”。

Parameters

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

要檢查的字節流。如果省略了這個參數,此函數會檢查所有來自最初請求所有的輸入。

encodingThe expected encoding.

期望的編碼。

Return ValuesReturns TRUE on success or FALSE on failure.

成功時返回 TRUE, 或者在失敗時返回 FALSE。

Examples<?php

/**

* Created by PhpStorm.

* User: zhangrongxiang

* Date: 2018/1/27

* Time: 下午2:59

*/

/**純數字和英文字母組合*/

$utf8Str = "I have 4 books and 2 magazines to check out. ";

echo ( mb_check_encoding( $utf8Str, 'utf-8' ) ) . PHP_EOL; //輸出1

echo ( mb_check_encoding( $utf8Str, 'gbk' ) ) . PHP_EOL; //輸出1

echo bin2hex( $utf8Str ) . PHP_EOL;

//492068617665203420626f6f6b7320616e642032206d6167617a696e657320746f20636865636b206f75742e20

$gbkStr = mb_convert_encoding( $utf8Str, 'gbk', 'utf-8' );

echo bin2hex( $gbkStr ) . PHP_EOL;

//492068617665203420626f6f6b7320616e642032206d6167617a696e657320746f20636865636b206f75742e20

/**gbk編碼的字符串 --> 設置文件編碼為gbk*/

$str = '博客園和github。';

echo mb_check_encoding( $str, 'utf-8' ) . PHP_EOL; //輸出空

echo mb_check_encoding( $str, 'gbk' ) . PHP_EOL; //輸出1

/**utf-8編碼的字符串 --> 設置文件編碼為utf-8*/

$str = '博客園和github。';

echo mb_check_encoding( $str, 'utf-8' ) . PHP_EOL; //1

echo mb_check_encoding( $str, 'gbk' ) . PHP_EOL; //輸出空

$utf8Str = '我abc是誰.';

echo mb_check_encoding( $utf8Str, 'utf-8' ) . PHP_EOL; //輸出1

//如果有中文標點符號則為空!!!

echo mb_check_encoding( $utf8Str, 'gbk' ) . PHP_EOL; //輸出1

/**自定義檢測字符串編碼是否為utf-8*/

function is_utf8( $str ) {

return (bool) preg_match( '//u', serialize($str) );

}

echo 'hello 中國!' .is_utf8( 'hello 中國!' ) . 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 中國").PHP_EOL; // 1

echo check_utf8( "\x00\xE3").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 = "\x00\x81";

$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 = "\x00\xE3";

$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;

}

相關推薦:

總結

以上是生活随笔為你收集整理的php stream encoding,PHP之mb_check_encoding使用方法分享的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。