- 浏览: 425545 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
lanlansnss:
说真的。 木有看懂哇。
【辞职】你谂清楚未? -
fei441544558:
isset($_SESSION['submit_tim ...
PHP防止用户刷新页面,重复提交表单内容 -
ngn9999:
天下文章一大抄
flash遮盖div层在IE和FF下解决办法 -
阳光空气水:
嗯,原来是道友。
FireBug - Javascript 的調試工具 [轉載] -
osacar:
楼主的头像里人物是不是史艳文里的?
PHP程序如何防止站外提交数据
作者:heiyeluren 来源:heiyeluren的blog 2008-01-21 最后更新:2008-01-21 15:14:07
一、编码范围
1. GBK (GB2312/GB18030)
\x00-\xff GBK双字节编码范围
\x20-\x7f ASCII
\xa1-\xff 中文
\x80-\xff 中文
2. UTF-8 (Unicode)
\u4e00-\u9fa5 (中文)
\x3130-\x318F (韩文
\xAC00-\xD7A3 (韩文)
\u0800-\u4e00 (日文)
ps: 韩文是大于[\u9fa5]的字符
正则例子:
preg_replace("/([\x80-\xff])/","",$str);
preg_replace("/([u4e00-u9fa5])/","",$str);
二、代码例子
//判断内容里有没有中文-GBK (PHP)
function check_is_chinese ( $ s ) {
return preg_match ( '/[\x80-\xff]./' , $ s ) ;
}
//获取字符串长度-GBK (PHP)
function gb_strlen ( $ str ) {
$ count = 0 ;
for ( $ i = 0 ; $ i < strlen ( $ str ) ; $ i + + ) {
$ s = substr ( $ str , $ i , 1 ) ;
if ( preg_match ( "/[\x80-\xff]/" , $ s ) ) + + $ i ;
+ + $ count ;
}
return $ count ;
}
//截取字符串字串-GBK (PHP)
function gb_substr ( $ str , $ len ) {
$ count = 0 ;
for ( $ i = 0 ; $ i < strlen ( $ str ) ; $ i + + ) {
if ( $ count = = $ len ) break ;
if ( preg_match ( "/[\x80-\xff]/" , substr ( $ str , $ i , 1 ) ) ) + + $ i ;
+ + $ count ;
}
return substr ( $ str , 0 , $ i ) ;
}
//统计字符串长度-UTF8 (PHP)
function utf8_strlen ( $ str ) {
$ count = 0 ;
for ( $ i = 0 ; $ i < strlen ( $ str ) ; $ i + + ) {
$ value = ord ( $ str [ $ i ] ) ;
if ( $ value > 127 ) {
$ count + + ;
if ( $ value > = 192 & & $ value < = 223 ) $ i + + ;
elseif ( $ value > = 224 & & $ value < = 239 ) $ i = $ i + 2 ;
elseif ( $ value > = 240 & & $ value < = 247 ) $ i = $ i + 3 ;
else die ( 'Not a UTF-8 compatible string' ) ;
}
$ count + + ;
}
return $ count ;
}
//截取字符串-UTF8(PHP)
function utf8_substr ( $ str , $ position , $ length ) {
$ start_position = strlen ( $ str ) ;
$ start_byte = 0 ;
$ end_position = strlen ( $ str ) ;
$ count = 0 ;
for ( $ i = 0 ; $ i < strlen ( $ str ) ; $ i + + ) {
if ( $ count > = $ position & & $ start_position > $ i ) {
$ start_position = $ i ;
$ start_byte = $ count ;
}
if ( ( $ count - $ start_byte ) > = $ length ) {
$ end_position = $ i ;
break ;
}
$ value = ord ( $ str [ $ i ] ) ;
if ( $ value > 127 ) {
$ count + + ;
if ( $ value > = 192 & & $ value < = 223 ) $ i + + ;
elseif ( $ value > = 224 & & $ value < = 239 ) $ i = $ i + 2 ;
elseif ( $ value > = 240 & & $ value < = 247 ) $ i = $ i + 3 ;
else die ( 'Not a UTF-8 compatible string' ) ;
}
$ count + + ;
}
return ( substr ( $ str , $ start_position , $ end_position - $ start_position ) ) ;
}
//字符串长度统计-UTF8 [中文3个字节,俄文、韩文占2个字节,字母占1个字节] (Ruby)
def utf8_string_length ( str )
temp = CGI : : unescape ( str )
i = 0 ;
j = 0 ;
temp . length . times { | t |
if temp [ t ] < 127
i + = 1
elseif temp [ t ] > = 127 and temp [ t ] < 224
j + = 1
if 0 = = ( j % 2 )
i + = 2
j = 0
end
else
j + = 1
if 0 = = ( j % 3 )
i + = 2
j = 0
end
end
}
return i
}
//判断是否是有韩文-UTF-8 (JavaScript)
function checkKoreaChar ( str ) {
for ( i = 0 ; i < str . length ; i + + ) {
if ( ( ( str . charCodeAt ( i ) > 0x3130 & & str . charCodeAt ( i ) < 0x318F ) | | ( str . charCodeAt ( i ) > = 0xAC00 & & str . charCodeAt ( i ) < = 0xD7A3 ) ) ) {
return true ;
}
}
return false
function check_is_chinese ( $ s ) {
return preg_match ( '/[\x80-\xff]./' , $ s ) ;
}
//获取字符串长度-GBK (PHP)
function gb_strlen ( $ str ) {
$ count = 0 ;
for ( $ i = 0 ; $ i < strlen ( $ str ) ; $ i + + ) {
$ s = substr ( $ str , $ i , 1 ) ;
if ( preg_match ( "/[\x80-\xff]/" , $ s ) ) + + $ i ;
+ + $ count ;
}
return $ count ;
}
//截取字符串字串-GBK (PHP)
function gb_substr ( $ str , $ len ) {
$ count = 0 ;
for ( $ i = 0 ; $ i < strlen ( $ str ) ; $ i + + ) {
if ( $ count = = $ len ) break ;
if ( preg_match ( "/[\x80-\xff]/" , substr ( $ str , $ i , 1 ) ) ) + + $ i ;
+ + $ count ;
}
return substr ( $ str , 0 , $ i ) ;
}
//统计字符串长度-UTF8 (PHP)
function utf8_strlen ( $ str ) {
$ count = 0 ;
for ( $ i = 0 ; $ i < strlen ( $ str ) ; $ i + + ) {
$ value = ord ( $ str [ $ i ] ) ;
if ( $ value > 127 ) {
$ count + + ;
if ( $ value > = 192 & & $ value < = 223 ) $ i + + ;
elseif ( $ value > = 224 & & $ value < = 239 ) $ i = $ i + 2 ;
elseif ( $ value > = 240 & & $ value < = 247 ) $ i = $ i + 3 ;
else die ( 'Not a UTF-8 compatible string' ) ;
}
$ count + + ;
}
return $ count ;
}
//截取字符串-UTF8(PHP)
function utf8_substr ( $ str , $ position , $ length ) {
$ start_position = strlen ( $ str ) ;
$ start_byte = 0 ;
$ end_position = strlen ( $ str ) ;
$ count = 0 ;
for ( $ i = 0 ; $ i < strlen ( $ str ) ; $ i + + ) {
if ( $ count > = $ position & & $ start_position > $ i ) {
$ start_position = $ i ;
$ start_byte = $ count ;
}
if ( ( $ count - $ start_byte ) > = $ length ) {
$ end_position = $ i ;
break ;
}
$ value = ord ( $ str [ $ i ] ) ;
if ( $ value > 127 ) {
$ count + + ;
if ( $ value > = 192 & & $ value < = 223 ) $ i + + ;
elseif ( $ value > = 224 & & $ value < = 239 ) $ i = $ i + 2 ;
elseif ( $ value > = 240 & & $ value < = 247 ) $ i = $ i + 3 ;
else die ( 'Not a UTF-8 compatible string' ) ;
}
$ count + + ;
}
return ( substr ( $ str , $ start_position , $ end_position - $ start_position ) ) ;
}
//字符串长度统计-UTF8 [中文3个字节,俄文、韩文占2个字节,字母占1个字节] (Ruby)
def utf8_string_length ( str )
temp = CGI : : unescape ( str )
i = 0 ;
j = 0 ;
temp . length . times { | t |
if temp [ t ] < 127
i + = 1
elseif temp [ t ] > = 127 and temp [ t ] < 224
j + = 1
if 0 = = ( j % 2 )
i + = 2
j = 0
end
else
j + = 1
if 0 = = ( j % 3 )
i + = 2
j = 0
end
end
}
return i
}
//判断是否是有韩文-UTF-8 (JavaScript)
function checkKoreaChar ( str ) {
for ( i = 0 ; i < str . length ; i + + ) {
if ( ( ( str . charCodeAt ( i ) > 0x3130 & & str . charCodeAt ( i ) < 0x318F ) | | ( str . charCodeAt ( i ) > = 0xAC00 & & str . charCodeAt ( i ) < = 0xD7A3 ) ) ) {
return true ;
}
}
return false
发表评论
-
高级PHP应用程序漏洞审核技术
2014-07-16 23:14 1323高级PHP应用程序漏洞审核技术 高级PHP应用程序 ... -
Apache服务器使用.htaccess实现图片防盗链教程
2011-10-24 16:45 1237所谓盗链,是指其他网 ... -
使用PHP 開源類來分析HTML
2011-07-20 17:43 1126Sourceforge上有一个PHP的分析类,可以从这里下载 ... -
启用Xdebug 和使用WinCacheGrind分析PHP腳本执行情況
2011-03-02 11:51 1454一、安装xdebug模块 1、去www.xdebug.org ... -
使用 mb_detect_encoding() 函数来判断字符串是什么编码的。
2011-02-19 21:06 1654原理: 使用 mb_detect_encoding() 函数 ... -
Cache_Lite 使用说明
2011-01-12 11:48 1475Cache_Lite (作者FabienMARTY . 译 ... -
PHP之中使用共享内存进行高速数据更新的一种方案 [转]
2010-12-29 22:14 1516作者:HonestQiao 如果在你 ... -
PHP 函数和过滤器(Filter)[转]
2010-12-28 15:55 1083http://www.w3school.com.cn/ph ... -
PHP大型Web应用入门(一) [转]
2010-12-26 23:42 996这里所说的“大型”应 ... -
高级PHP应用程序漏洞审核技术 [转]
2010-12-26 23:22 1464[目录] 1. 前言 2. 传 ... -
10位顶级PHP大师的开发原则 【轉】
2010-12-22 14:47 8881. 在合适的时候使用PHP – Rasmus Lerdo ... -
windows下php curl 的支持
2010-08-24 09:23 1868上次帮一个朋友安装Zen Cart, 发现需要curl的支持, ... -
PHP自动检测客戶端是否Mobile [轉載]
2010-04-21 11:56 1243<?php $mobile_browser ... -
pear安装及除错 [转]
2010-03-30 22:35 1704安装过程: 方法一: windows xp下安装pear ... -
支持中文的截取字符函数,不同编码下中文字符的范围一目了然
2009-08-18 09:19 1088这是一个简单的函数,或许对你我都有用吧。 以前也有类似的文章, ... -
APC(Alternative PHP Cache)學習文章收集
2009-04-16 11:24 1654I. 概述: Alternative Php Cache(AP ... -
php字符串处理函数讲解
2009-03-16 16:55 1440addcslashes —— 为字符串 ... -
php函数call_user_func和call_user_func_array函數使用
2009-03-10 17:35 3275call_user_func函数类似于一种特别的调用函数的 ... -
在PHP中處理xml文件
2009-03-09 15:40 1357<?php $xml = simplexml_lo ... -
PHP中的ob_start()_输出缓冲函數
2009-02-02 10:39 1537在PHP编程中, 我们经常会遇到一些直接产生输出的函数, 如p ...
相关推荐
标题中的"php 编码相互转换类(gbk转换utf8)"就是这样一个解决方案,它提供了一种更可靠的方式来将GBK编码的字符串转换为UTF-8编码。这个转换类通常包含一系列方法,用于处理各种编码转换的细节,如错误处理、异常...
描述中提到的“gbk2utf”,是一个用于将GBK编码的文件转换为UTF-8编码的工具。这个工具提供了两种版本:一个支持子目录的“gbk2utf”,可以递归地转换所有子目录下的文件;另一个是VBS(Visual Basic Script)编写的...
总的来说,GBK到UTF-8的转换是解决多语言环境中的编码兼容问题,对于处理中文文件尤其重要。通过批量转换工具,可以高效地完成大量文件的编码转换工作,保证数据的准确性和一致性。在日常开发和维护过程中,了解并...
这个压缩包提供的类库专门用于处理GBK和UTF8编码的字符串,并将其转换为Unicode编码,反之亦然。下面我们将深入探讨字符串编码转换的相关知识以及如何使用这个PHP类库。 Unicode是一种广泛使用的字符编码标准,它...
写此贴为记录自己的学习历程,供后来者以观. ...网站里的学习源码文件(我用的是77例中的) 和很多插件 论坛代码... ...Discuz!也是的 解决起来很简单,把它们的编码都改成 utf8 好了. 批量文件转码工具
在处理多语言编码时,GBK和UTF-8是常见的两种字符集,它们各有特点,适应不同的应用场景。本文将深入探讨基于PHP的UCenterHome在GBK和UTF-8编码下的源码实现。 首先,我们需要了解GBK和UTF-8的区别。GBK是GB2312的...
3. **手动转码**:资源中包含“手工UTF8转GBK文件”,这些可能是关键的模板文件或配置文件,已经被转换成GBK编码。将这些文件替换到论坛的相应目录,以匹配GBK编码的环境。 4. **IP数据文件转换**:资源中还提供了...
标题 "基于PHP的UCenter Home ...总的来说,这个压缩包提供了关于如何在PHP环境中解决UCenter Home的GBK和UTF-8编码问题的资源。理解和应用这些内容,开发者可以更好地处理跨编码环境的兼容性,保证网站的正常运行。
批量修改mysql数据库、表、字段编码(gbk到utf8php脚本) 可以把整个数据库、表、字段编码全部从gbk_chinese_ci 到 utf8_general_ci 转换,不会乱码哦 狂拽吊炸天!!!
本文将详细讲解如何使用PHP实现这个功能,同时处理常见的编码问题,如UTF-8和GBK的转换。 首先,让我们了解Excel和CSV文件格式。Excel是一种流行的电子表格应用程序,用于组织和分析数据。而CSV(Comma Separated ...
MySQL数据库在处理字符编码时,经常涉及到不同的字符集转换,如latin1到gbk,gbk到utf8,甚至gbk到big5等。这些转换在处理多语言数据或者迁移数据库时尤其重要,因为不同的字符集支持不同的字符范围,比如latin1主要...
使用这样的类,你可以方便地处理各种编码的文本,特别是在处理来自不同来源的数据时,确保它们能够正确显示和处理。例如,如果你有一个使用GBK编码的文本文件,需要在网页上以UTF-8展示,可以使用这个类进行转换。 ...
1. **字符串转换**:可以将字符串在不同的字符编码之间转换,例如从ISO-8859-1到UTF-8,或者从GBK到UTF-8,这对于处理来自不同来源的数据非常有用。 2. **字符检测**:能够检测字符串是否是有效的UTF-8编码,避免...
总的来说,这个压缩包提供了一个针对`fpdf`的扩展,使其能够正确处理和显示中文UTF-8和GBK编码的文本,对于需要在PHP项目中生成中文PDF的开发者来说是一个非常实用的资源。通过深入理解这些文件及其功能,可以有效地...
在PHP开发中,常见的字符编码有GBK和UTF-8,GBK是一种针对中文的编码方式,而UTF-8则支持世界上大多数语言。因此,掌握GBK与UTF-8之间的转换方法在实际应用中尤为重要。 文章介绍了两种PHP数组编码转换的方法。第一...
总之,GBK和UTF转换工具是处理中文字符编码问题的重要工具,尤其在处理HTML、PHP、JSP等文件时,能有效确保文件内容在不同环境下的一致性。了解并掌握这种工具的使用,对于IT从业者来说,尤其是从事网页开发和数据...
在UCenter Home中,可能需要根据实际需求,将GBK编码的源码转换为UTF-8,或者反之,这通常涉及数据库的字符集设置、PHP代码中的字符串处理函数,以及HTML头部的字符集声明等。 5. 使用须知 "使用须知.txt"文件可能...
在本文中,我们将探讨如何使用PHP来读取和导出数据到Excel(通常指xlsx格式,属于Microsoft Office Open XML标准)和CSV文件,并涉及编码转换,特别是UTF-8和GBK之间的转换。 首先,让我们关注PHP与Excel文件的交互...
(简称DZ)论坛系统的一款专业模板,名为"N5城市门户系列-V8 整站(GBK)",并且包含了GBK和UTF8两种编码格式的版本。这款模板设计旨在打造一个功能全面、用户体验优秀的城市门户类网站,集资讯、社区互动于一体,适用...
在PHP编程语言中,处理不同字符编码的转换是常见的需求,特别是当涉及到中文字符时,如GBK(GB2312)、Big5和UTF-8等。这些编码标准在中国大陆和台湾地区尤为常见。本篇文章将详细介绍如何在PHP中进行各种编码间的...