您的位置:

php判断字符串编码,php编码规范有哪些

本文目录一览:

PHP用三元运算符判断字符串

$str为读出的字符串

strlen($str)30 ? echo substr($str,30)."..." : echo $str;

但是,这里有个问题,如果字符串是汉字和字母,数字等混编的时候(类似"这是1个字符串"),汉字的截取就会出现乱码,为避免这种情况,需要自己写函数来实现

PHP有没有判断一个文件或者一段字符串是什么编码的函数?

测试:将 text1.txt 保存成 ASCII编码, text2.txt 保存成 UTF-8 编码

?php

function chkCode($string){

$code = array('ASCII', 'GBK', 'UTF-8');

foreach($code as $c){

if( $string === iconv('UTF-8', $c, iconv($c, 'UTF-8', $string))){

return $c;

}

}

return null;

}

$file = 'text1.txt';

echo chkCode(file_get_contents($file)); // 输出ASCII

echo 'br /';

$file = 'text2.txt';

echo chkCode(file_get_contents($file)); // 输出UTF-8

echo 'br /';

?

php 怎样判断字符串是哪种编码

php中有个函数可以用来检查当前字符串的编码类型

mb_detect_encoding($str,array('ASSCII',''GB2312','UTF-8));

PHP用MBString库的函数

$e=mb_detect_encoding($text, array('UTF-8', 'GBK'));

switch($e){

case 'UTF-8' : //如果是utf8编码

break;

case ‘GBK’: //如果是gbk编码

break

}

PHP mb_convert_encoding 获取字符串编码类型实现代码

后来又在手册上找到了is_utf8函数,这样,再结合iconv函数,我的问题就解决了。下面帖出这个函数:

复制代码

代码如下:

function

is_utf8($string)

{

return

preg_match('%^(?:

[\x09\x0A\x0D\x20-\x7E]

#

ASCII

|

[\xC2-\xDF][\x80-\xBF]

#

non-overlong

2-byte

|

\xE0[\xA0-\xBF][\x80-\xBF]

#

excluding

overlongs

|

[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}

#

straight

3-byte

|

\xED[\x80-\x9F][\x80-\xBF]

#

excluding

surrogates

|

\xF0[\x90-\xBF][\x80-\xBF]{2}

#

planes

1-3

|

[\xF1-\xF3][\x80-\xBF]{3}

#

planes

4-15

|

\xF4[\x80-\x8F][\x80-\xBF]{2}

#

plane

16

)*$%xs',

$string);

}

//

function

is_utf8

如果想深入研究,建议看下PHP手册上的“Multibyte

String

Functions”这一部分的内容。

php 判断字符是不是base64

PHP判断一个字符串是否经过base64编码,可以通过对该字符串解码,然后编码,最后对比两者是否相等。示例代码如下:

?php

header("Content-type:text/html;charset=utf-8;");

$str="Y2hpbmF3aW54cA==";

$re=is_base64($str);

if($re){

    echo "该字符串是base64编码";

}else{

    echo "该字符串未经过base64编码";

}

//判断字符串是否经过编码方法

function is_base64($str){

    if($str==base64_encode(base64_decode($str))){

        return true;

    }else{

        return false;

    }

}

?