php 字符串过滤函数,[小结+讨论]php 字符串过滤 各类函数应用

[总结+讨论]php 字符串过滤 各类函数应用

首先自我检讨一下..因为正则不过关,所以自己写的过滤条件基本失败了...

上网查的函数也看不懂,改了也出错....

在csdn的各路神仙指点下,略微开了点窍...原问题帖链接

现放出各个路子的函数,供各位已经死过还尚未死成的同志使用....

希望大家积极补充,把平时常用的方法帖出来

基础函数

-----------------------------------------------

其实mysql和php自带很多函数可以处理字符问题,下面给出几个会经常用到的.

ps:由于php6开始不支持magic_quotes_gpc,所以下面的东西都是假设在magic_quotes_gpc=off的条件上(不知道php6会出什么新东西....)

mysql_real_escape_string()

定义:函数转义 SQL 语句中使用的字符串中的特殊字符。

语法: mysql_real_escape_string(string,connection)

说明:本函数将 string 中的特殊字符转义,并考虑到连接的当前字符集,因此可以安全用于 mysql_query()。

由于实例代码过长,给出函数解释链接 w3school phpnet

addSlashes()

定义:addslashes() 函数在指定的预定义字符前添加反斜杠。

语法:addslashes(string)

注释:默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。

由于实例代码过长,给出函数解释链接 w3school phpnet

相关函数

StripSlashes()去掉反斜线字符。(解释过滤字符时用)

mb_convert_encoding()

PHP的内码转换函数

版本(PHP 4 >= 4.0.6, PHP 5)

这个函数可以将各种编码互相转换

相关链接 phpnet

iconv()

php内码转换函数,同上

因为iconv()在转换gb2312时的bug,所以要这样处理

PHP codeiconv( "UTF-8", "gb2312//IGNORE" , $str)

ignore的意思是忽略转换时的错误,发现iconv在转换字符"—"到gb2312时会出错,如果没有ignore参数,所有该字符后面的字符串都无法被保存。

另外mb_convert_encoding没有这个bug,所以最好的写法是:

PHP codemb_convert_encoding($str,"gb2312", "UTF-8");

但是需要先enable mbstring 扩展库。

也可以把mysql数据库的collation设成utf-8就不用作转换了

三句mysql真言

SQL codeSET NAMES utf8;SET CHARACTER SET utf8;SET COLLATION_CONNECTION='utf8_general_ci';

相关链接 phpnet

资料参考 link1 link2 link3

自定函数1

-----------------------------------------------

网上找的转换函数,将GB2312进行转换的,修改为utf-8后转换错误,无法解析中文.....期待正则狂人...

PHP code$v) { if(ord($v[0]) < 128) $ar[$k] = rawurlencode($v); else $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v)); } return join("",$ar);}function unescape($str) { $str = rawurldecode($str); preg_match_all("/(?:%u.{4})|.+/",$str,$r); $ar = $r[0]; foreach($ar as $k=>$v) { if(substr($v,0,2) == "%u" && strlen($v) == 6) $ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4))); } return join("",$ar);}?>

自定函数2

-----------------------------------------------

感谢论坛gingzai777 ,高手就是不一样,一眼就能看出问题所在.....

以后php过滤用这个行了,不需要顾虑文件编码了.....

PHP code

-------------------------------------------------

相关文章

相关视频

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHP字符串函数可以分为以下几类: 1. 字符串操作函数:用于对字符串进行操作,如拼接、替换、截取等。常用函数有:strlen、substr、str_replace、str_pad等。 示例: 获取字符串长度: ``` $str = "hello world"; $length = strlen($str); // $length = 11 ``` 截取字符串: ``` $str = "hello world"; $sub_str = substr($str, 0, 5); // $sub_str = "hello" ``` 替换字符串: ``` $str = "hello world"; $new_str = str_replace("world", "php", $str); // $new_str = "hello php" ``` 2. 字符串格式化函数:用于对字符串进行格式化,如大小写转换、去除空格等。常用函数有:strtolower、strtoupper、trim等。 示例: 将字符串转换为大写: ``` $str = "hello world"; $new_str = strtoupper($str); // $new_str = "HELLO WORLD" ``` 去除字符串中的空格: ``` $str = " hello world "; $new_str = trim($str); // $new_str = "hello world" ``` 3. 字符串查询函数:用于查询字符串中是否包含某个子串或者某个字符的位置。常用函数有:strpos、strrpos、strstr等。 示例: 查询字符串中是否包含某个子串: ``` $str = "hello world"; $pos = strpos($str, "world"); // $pos = 6 ``` 查询字符在字符串中最后一次出现的位置: ``` $str = "hello world"; $pos = strrpos($str, "o"); // $pos = 7 ``` 4. 字符串编码函数:用于对字符串进行编码和解码。常用函数有:urlencode、urldecode、base64_encode、base64_decode等。 示例: 将字符串进行 URL 编码: ``` $str = "hello world"; $new_str = urlencode($str); // $new_str = "hello+world" ``` 将字符串进行 Base64 编码: ``` $str = "hello world"; $new_str = base64_encode($str); // $new_str = "aGVsbG8gd29ybGQ=" ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值