易截截图软件、单文件、免安装、纯绿色、仅160KB

用PHP如何判断一个文件的编码?

 整理自:http://bbs.phpchina.com/viewthread.php?tid=18006
文件a.txt,用PHP如何判断它的编码是GBK还是UTF-8呢?
1,重新认识一下此问题,当时版主回复的时候我就觉得mb函数里一定有这样的功能,但今日研究了mb库,并没有这样的功能。用mb_detect_encoding总是不准确。
echo mb_detect_encoding(file_get_contents('a.txt'));
2,我在PHP的在线文档中找了一个方法,可以解决你的问题,需要自己编写一个函数来实现。
具体代码如下:
function isUTF8($str)
{
if ($str === mb_convert_encoding(mb_convert_encoding($str, "UTF-32", "UTF-8"), "UTF-8", "UTF-32"))
{
return true;
}
else
{
return false;
}
}
$content = file_get_contents("a.txt");
echo isUTF8($content);
3,经测试,在编码种类不多的情况下,2方法成功率还是挺高的。
function ChickC($str)
{
$array = array('ASCII','GBK','UTF-8');
foreach ($array as $value)
{
if ($str === mb_convert_encoding(mb_convert_encoding($str, "UTF-32", $value), $value, "UTF-32"))
return $value;
}
return false;
}


相关文档:

PHP编程基础必知必会

1.PHP字符串操作常用的方法
    php串中还有一个特殊的花括号操作符。当用双引号指定字符串时,其中的变量会被解析。在双引号中的串中如果遇到$,解析器会尽可能多地取得后面的字符以组成一个合法的变量名,如果想表示指定名字的结束,用花括号把变量名括起来。请看以下代码:
<?php
$beer = 'heineke ......

php 数据库的封装类

 <?php
 class DB
 {
  private $link;
  function connectDB($dbhost, $dbuser, $dbpw, $dbname="", $pconnect = 1)
  {
   if($pconnect)
   {
    if(!$this->link = mysql_pconnect($dbhost, $dbuser, ......

PHP缓存技术:memcache函数详解之二

memcache::debug
bool memcache_debug ( bool $on_off )
 
说明:
控制调试功能,前提是php在编译的时候使用了-enable-debug选项,否则这个函数不会有作用。
参数:
$on_off:true表示开启调试,false表示关闭调试
返回值:
如果php在编译的时候使用了-enable-debug选项,返回true,否则返回false
Memcache:: ......

不完全的HTML头消息,可能被某些PHP服务器拒绝.

近日在用自己以前写的http下载器下载某一个php页面以外遭遇403错误.但是ie却能够正确访问. 日志如下: IE: Time At:0005504671
Line:10
send: 192.168.1.2 –> xxx.xxx.xxx.xxx len:351
GET /test.jpg HTTP/1.1
Accept: */*
Accept-Language: en-us
Accept-Enc ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号