【给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug】教程文章相关的互联网学习教程文章

php使用mb_check_encoding检查字符串在指定的编码里是否有效_PHP

mb_check_encoding — 检查字符串在指定的编码里是否有效PHP 版本要求: (PHP 4 >= 4.4.3, PHP 5 >= 5.1.3)说明:bool mb_check_encoding ([ string $var = NULL [, string $encoding = mb_internal_encoding() ]] )检查指定的字节流在指定的编码里是否有效。它能有效避免所谓的“无效编码攻击(Invalid Encoding Attack)”。参数var要检查的字节流。如果省略了这个参数,此函数会检查所有来自最初请求所有的输入。encoding期望的...

详解PHP中的mb_detect_encoding函数使用方法_PHP

php中可以使用 mb_detect_encoding() 函数来判断字符串是什么编码的。 当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF-8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短时mb_detect_encoding会出现误判。 代码如下:$encode = mb_detect_encoding($keytitle, array("ASCII","UTF-8","GB2312","GBK","BIG5")); if($encode == "UTF-8"){$keytitle = ...

给apache2.2加上mod_encoding模块後php5.2.0处理url出现bug_php技巧

这个问题是mod_encoding已经先一步处理了url ,而PHP又解了一次 例如 x.php?s=%252B%2F%2B%2F 那么$_GET['s']得到的是 +/ / urlencode("+") = %2B urlencode("%2B") = %252B 所以,这个url被decode了两次 第一次是 urldecode( "%252B%2F%2B%2F") = %2B/+/ urldecode( "%2B/+/") = +/ / 解决办法 修改httpd.conf 将 EncodingEngine on 这一段配置移到需要的vitualHost里去,这个不能和php脚本并存。

PHPmb_convert_encoding获取字符串编码类型实现代码_php技巧

后来又在手册上找到了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[\...

PHP下编码转换函数mb_convert_encoding与iconv的使用说明_php技巧

不过英文一般不会存在编码问题,只有中文数据才会有这个问题。比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。 mb_convert_encoding的用法见官方: http://cn.php.com/manual/zh/function.mb-convert-encoding.php 做一个GBK To UTF-8 代码如下:header("content-Type: text/html; charset=Utf-8"); echo mb_con...

php自动获取字符串编码函数mb_detect_encoding_php技巧

当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF- 8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短是,mb_detect_encoding会出现误判。 例如: 代码如下:$encode = mb_detect_encoding($keytitle, array("ASCII",UTF-8′,"GB2312′,"GBK",BIG5′)); if ($encode == “UTF-8″){ $keytitle = iconv("UTF-8″,"GBK",$keytitle); } 这段代码的作用是检...

php转换字符串编码iconv与mb_convert_encoding的区别说明_php技巧

iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5) mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5) 用法: string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) 需要先启用 mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉 string iconv ( string in_charset, string out_charset, string str ) 注意...

PHP中mb_convert_encoding与iconv函数的深入解析_php技巧

mb_convert_encoding这个函数是用来转换编码的。原来一直对程序编码这一概念不理解,不过现在好像有点开窍了。不过英文一般不会存在编码问题,只有中文数据才会有这个问题。比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。mb_convert_encoding的用法见官方:http://php.com/manual/zh/function.mb-convert-encod...

详解PHP中的mb_detect_encoding函数使用方法_php技巧

php中可以使用 mb_detect_encoding() 函数来判断字符串是什么编码的。 当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF-8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短时mb_detect_encoding会出现误判。 代码如下:$encode = mb_detect_encoding($keytitle, array("ASCII","UTF-8","GB2312","GBK","BIG5")); if($encode == "UTF-8"){$keytitle = ...

给apache2.2加上mod_encoding模块後 php5.2.0 处理url出现bug

这个问题是mod_encoding已经先一步处理了url ,而PHP又解了一次 例如 x.php?s=%252B%2F%2B%2F 那么$_GET['s']得到的是 +/ / urlencode("+") = %2B urlencode("%2B") = %252B 所以,这个url被decode了两次 第一次是 urldecode( "%252B%2F%2B%2F") = %2B/+/ urldecode( "%2B/+/") = +/ / 解决办法 修改httpd.conf 将 <IfModule mod_encoding.c> EncodingEngine on 这一段配置移到需要的vitualHost里去,这个...

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[\...

PHP下编码转换函数mb_convert_encoding与iconv的使用说明

不过英文一般不会存在编码问题,只有中文数据才会有这个问题。比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。 mb_convert_encoding的用法见官方: http://cn.php.com/manual/zh/function.mb-convert-encoding.php 做一个GBK To UTF-8 代码如下:<?php header("content-Type: text/html; charset=Utf-8"); echo ...

php自动获取字符串编码函数mb_detect_encoding

当在php中使用mb_detect_encoding函数进行编码识别时,很多人都碰到过识别编码有误的问题,例如对与GB2312和UTF- 8,或者UTF-8和GBK(这里主要是对于cp936的判断),网上说是由于字符短是,mb_detect_encoding会出现误判。 例如: 代码如下:$encode = mb_detect_encoding($keytitle, array("ASCII",UTF-8′,"GB2312′,"GBK",BIG5′)); if ($encode == “UTF-8″){ $keytitle = iconv("UTF-8″,"GBK",$keytitle); } 这段代码的作用是检...

php 转换字符串编码 iconv与mb_convert_encoding的区别说明

iconv — Convert string to requested character encoding(PHP 4 >= 4.0.5, PHP 5) mb_convert_encoding — Convert character encoding(PHP 4 >= 4.0.6, PHP 5) 用法: string mb_convert_encoding ( string str, string to_encoding [, mixed from_encoding] ) 需要先启用 mbstring 扩展库,在 php.ini里将; extension=php_mbstring.dll 前面的 ; 去掉 string iconv ( string in_charset, string out_charset, string str ) 注意...

PHP中mb_convert_encoding与iconv函数的深入解析

mb_convert_encoding这个函数是用来转换编码的。原来一直对程序编码这一概念不理解,不过现在好像有点开窍了。不过英文一般不会存在编码问题,只有中文数据才会有这个问题。比如你用Zend Studio或Editplus写程序时,用的是gbk编码,如果数据需要入数据库,而数据库的编码为utf8时,这时就要把数据进行编码转换,不然进到数据库就会变成乱码。mb_convert_encoding的用法见官方:http://php.com/manual/zh/function.mb-convert-encod...

PHP5 - 相关标签