CodeIgniter Utf8.php
来源:互联网 发布:h5登录界面模板带源码 编辑:程序博客网 时间:2024/06/07 03:09
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/**
* CodeIgniter
*
* An open source application development framework for PHP 5.1.6 or newer
*
* @package CodeIgniter
* @author ExpressionEngine Dev Team
* @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
* @license http://codeigniter.com/user_guide/license.html
* @link http://codeigniter.com
* @since Version 2.0
* @filesource
*/
// ------------------------------------------------------------------------
/**
* Utf8 Class
*
* Provides support for UTF-8 environments
*
* @package CodeIgniter
* @subpackage Libraries
* @category UTF-8
* @author ExpressionEngine Dev Team
* @link http://codeigniter.com/user_guide/libraries/utf8.html
*/
class CI_Utf8 {
/**
* Constructor
*
* Determines if UTF-8 support is to be enabled
*
*/
function __construct()
{
log_message('debug', "Utf8 Class Initialized");
//全局变量
global $CFG;
if (
preg_match('/./u', '茅') === 1// PCRE must support UTF-8
AND function_exists('iconv')// iconv must be installed
AND ini_get('mbstring.func_overload') != 1// Multibyte string function overloading cannot be enabled
AND $CFG->item('charset') == 'UTF-8'// Application charset must be UTF-8
)
{
log_message('debug', "UTF-8 Support Enabled");
define('UTF8_ENABLED', TRUE);
// set internal encoding for multibyte string functions if necessary
// and set a flag so we don't have to repeatedly use extension_loaded()
// or function_exists()
// 检查一个扩展是否已经加载
if (extension_loaded('mbstring'))
{
define('MB_ENABLED', TRUE);
mb_internal_encoding('UTF-8');
}
else
{
define('MB_ENABLED', FALSE);
}
}
else
{
log_message('debug', "UTF-8 Support Disabled");
define('UTF8_ENABLED', FALSE);
}
}
// --------------------------------------------------------------------
/**
* Clean UTF-8 strings
*
* Ensures strings are UTF-8
*
* @access public
* @param string
* @return string
*/
//返回$str是utf-8格式
function clean_string($str)
{
if ($this->_is_ascii($str) === FALSE)
{
$str = @iconv('UTF-8', 'UTF-8//IGNORE', $str);
}
return $str;
}
// --------------------------------------------------------------------
/**
* Remove ASCII control characters
*
* Removes all ASCII control characters except horizontal tabs,
* line feeds, and carriage returns, as all others can cause
* problems in XML
*
* @access public
* @param string
* @return string
*/
//移除所有的ASCII控制字符除了水平制表符,换行、回车
function safe_ascii_for_xml($str)
{
return remove_invisible_characters($str, FALSE);
}
// --------------------------------------------------------------------
/**
* Convert to UTF-8
*
* Attempts to convert a string to UTF-8
*
* @access public
* @param string
* @param string - input encoding
* @return string
*/
//把str转成utf8编码格式
function convert_to_utf8($str, $encoding)
{
if (function_exists('iconv'))
{
$str = @iconv($encoding, 'UTF-8', $str);
}
elseif (function_exists('mb_convert_encoding'))
{
$str = @mb_convert_encoding($str, 'UTF-8', $encoding);
}
else
{
return FALSE;
}
return $str;
}
// --------------------------------------------------------------------
/**
* Is ASCII?
*
* Tests if a string is standard 7-bit ASCII or not
*
* @access public
* @param string
* @return bool
*/
//测试$str是否为标准的7位ASCII
function _is_ascii($str)
{
return (preg_match('/[^\x00-\x7F]/S', $str) == 0);
}
// --------------------------------------------------------------------
}
// End Utf8 Class
/* End of file Utf8.php */
/* Location: ./system/core/Utf8.php */
/**
* CodeIgniter
*
* An open source application development framework for PHP 5.1.6 or newer
*
* @package CodeIgniter
* @author ExpressionEngine Dev Team
* @copyright Copyright (c) 2008 - 2011, EllisLab, Inc.
* @license http://codeigniter.com/user_guide/license.html
* @link http://codeigniter.com
* @since Version 2.0
* @filesource
*/
// ------------------------------------------------------------------------
/**
* Utf8 Class
*
* Provides support for UTF-8 environments
*
* @package CodeIgniter
* @subpackage Libraries
* @category UTF-8
* @author ExpressionEngine Dev Team
* @link http://codeigniter.com/user_guide/libraries/utf8.html
*/
class CI_Utf8 {
/**
* Constructor
*
* Determines if UTF-8 support is to be enabled
*
*/
function __construct()
{
log_message('debug', "Utf8 Class Initialized");
//全局变量
global $CFG;
if (
preg_match('/./u', '茅') === 1// PCRE must support UTF-8
AND function_exists('iconv')// iconv must be installed
AND ini_get('mbstring.func_overload') != 1// Multibyte string function overloading cannot be enabled
AND $CFG->item('charset') == 'UTF-8'// Application charset must be UTF-8
)
{
log_message('debug', "UTF-8 Support Enabled");
define('UTF8_ENABLED', TRUE);
// set internal encoding for multibyte string functions if necessary
// and set a flag so we don't have to repeatedly use extension_loaded()
// or function_exists()
// 检查一个扩展是否已经加载
if (extension_loaded('mbstring'))
{
define('MB_ENABLED', TRUE);
mb_internal_encoding('UTF-8');
}
else
{
define('MB_ENABLED', FALSE);
}
}
else
{
log_message('debug', "UTF-8 Support Disabled");
define('UTF8_ENABLED', FALSE);
}
}
// --------------------------------------------------------------------
/**
* Clean UTF-8 strings
*
* Ensures strings are UTF-8
*
* @access public
* @param string
* @return string
*/
//返回$str是utf-8格式
function clean_string($str)
{
if ($this->_is_ascii($str) === FALSE)
{
$str = @iconv('UTF-8', 'UTF-8//IGNORE', $str);
}
return $str;
}
// --------------------------------------------------------------------
/**
* Remove ASCII control characters
*
* Removes all ASCII control characters except horizontal tabs,
* line feeds, and carriage returns, as all others can cause
* problems in XML
*
* @access public
* @param string
* @return string
*/
//移除所有的ASCII控制字符除了水平制表符,换行、回车
function safe_ascii_for_xml($str)
{
return remove_invisible_characters($str, FALSE);
}
// --------------------------------------------------------------------
/**
* Convert to UTF-8
*
* Attempts to convert a string to UTF-8
*
* @access public
* @param string
* @param string - input encoding
* @return string
*/
//把str转成utf8编码格式
function convert_to_utf8($str, $encoding)
{
if (function_exists('iconv'))
{
$str = @iconv($encoding, 'UTF-8', $str);
}
elseif (function_exists('mb_convert_encoding'))
{
$str = @mb_convert_encoding($str, 'UTF-8', $encoding);
}
else
{
return FALSE;
}
return $str;
}
// --------------------------------------------------------------------
/**
* Is ASCII?
*
* Tests if a string is standard 7-bit ASCII or not
*
* @access public
* @param string
* @return bool
*/
//测试$str是否为标准的7位ASCII
function _is_ascii($str)
{
return (preg_match('/[^\x00-\x7F]/S', $str) == 0);
}
// --------------------------------------------------------------------
}
// End Utf8 Class
/* End of file Utf8.php */
/* Location: ./system/core/Utf8.php */
- CodeIgniter Utf8.php
- codeigniter源代码分析 - 编码类 Utf8.php
- CodeIgniter 核心代码阅读-Utf8转码文件Utf8.php
- CodeIgniter框架源码学习之utf-8编码的环境支持类--Utf8.php
- CodeIgniter php开发框架
- PHP框架之Codeigniter
- codeigniter-- php framework trick
- CodeIgniter 去掉index.php
- CodeIgniter Common.php
- CodeIgniter Benchmark.php
- CodeIgniter Output.php
- CodeIgniter core/Controller.php
- CodeIgniter core/Exception.php
- php codeigniter 数据排序
- CodeIgniter core/input.php
- CodeIgniter core/lang.php
- CodeIgniter 去掉index.php
- php框架CodeIgniter介绍
- 一维的Haar小波变换
- JS判断浏览器类型与版本
- Spider-定向抓取
- C语言简单的三个示例
- 总结一下java中的线程Thread
- CodeIgniter Utf8.php
- [源码分享]NPOI导出数据到EXCEl(输出文件,web输出下载)
- linux下tar.gz、tar、bz2、zip等解压缩、压缩命令小结
- Oracle PL/SQL语言基础ORACLE教程 教程作者:佚名 教程来源:不详 教程栏目:ORACLE教程
- Extjs与Arcgis javascript结合完成FindTask
- 驱动程序层次
- 关于altium designer 中如何按1:1生成PDF文档的解决方案
- 编写可维护的JavaScript
- x64安装Oracle 10.2.0.4无法启动EM dbconsole问题解决