Url进行编码和解码
URL:
urlencode(); //编码
urldecode(); //解码
URL与数组互转:
parse_url ()
http_build_query()
base64:
base64_encode();
base64_decode();
JSON:
json_encode();
json_decode();
SESSION:
session_encode();
session_decode();
字符转为HTML实体:
htmlentities() / html_entity_decode()
所有字符转换为 HTML 实体
htmlspecialchars() / htmlspecialchars_decode()
将特殊字符"<" (小于)和 ">" (大于)转换为 HTML 实体
uuencode编码:
convert_uuencode();
convert_uudecode();
字符集编码相互转换:
iconv();
mb_convert_encoding();
字符写入数据库自动转义:
// magic_quotes_runtime 相关函数在PHP 5.3.0中已 弃用,并且自PHP 7.0.0起已删除
get_magic_quotes_runtime() 取得 PHP 环境变量 magic_quotes_runtime 的值。设置返回 1 或者 true
set_magic_quotes_runtime() 可以让程序员在代码中动态开启或关闭 magic_quotes_runtime,
set_magic_quotes_runtime(1) 表示开启,set_magic_quotes_runtime(0) 则表示关闭。当set_magic_quotes_runtime(1) 时,从数据库或通过fread之类的函数读取的文本,将自动对’ “和自动加上反斜杠进行转义,防止溢出。这在对数据库的数据进行转移的时候非常有用。
但在一般情况下,应当将其关闭,否则从数据库读取出来的数据单引号、双引号和反斜杠都会被加上,导致显示不正常。像Discuz,PHPWind都在公共文件的头部加上一句 set_magic_quotes_runtime(0); 强制关闭 magic_quotes_runtime 。
作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;
作用时间:每次当脚本访问运行状态中产生的数据.
字符转义:
// 自PHP 5.3.0起,此功能已被弃用 ,自PHP 5.4.0 起已被 删除。
magic_quotes_gpc
magic_quotes_gpc 为 on,它主要是对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes(),一般在数据入库前要先进行转义。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测,如果 magic_quotes_gpc 为关闭时返回 0,否则返回 1。或者始终FALSE
从PHP 5.4.0开始返回。
作用范围是:WEB客户服务端;
作用时间:请求开始是,例如当脚本运行时。
反斜线转义字符串:
addslashes() / stripslashes() 互为反函数
addslashes() 函数返回在预定义字符之前添加反斜杠的字符串。
预定义字符是:单引号('),双引号("),反斜杠(\),NULL
指定字符前添加反斜杠:
addcslashes() / stripcslashes() 互为反函数
注释:addcslashes() 函数对大小写敏感。 以 C 语言风格使用反斜线转义字符串中的字符。
注释:对以下字符应用 addcslashes() 时请小心:0(NULL), r(回车), n(换行), f 换页)、t(制表符)以及 v(垂直制表符)。在 PHP 中,\0, \r, \n, \t, \f 以及 \v 是预定义的转义序列。
string addcslashes ( string $str , string $charlist )
返回字符串,该字符串在属于参数 charlist 列表中的字符前都加上了反斜线。
如果 charlist 中包含有 \n,\r 等字符,将以 C 语言风格转换,而其它非字母数字且 ASCII 码低于 32 以及高于 126 的字符均转换成使用八进制表示。