本文目录一览:
- 1、PHP用三元运算符判断字符串
- 2、PHP有没有判断一个文件或者一段字符串是什么编码的函数?
- 3、php 怎样判断字符串是哪种编码
- 4、PHP mb_convert_encoding 获取字符串编码类型实现代码
- 5、php 判断字符是不是base64
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;
}
}
?