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 的字符均转换成使用八进制表示。