string base64_decode ( string $data
[, bool $strict
= false ] )
对 base64 编码的 data
进行解码。
参数
data
编码过的数据。
strict
当设置 strict
为 TRUE
时,一旦输入的数据超出了 base64 字母表,将返回 FALSE
。 否则会静默丢弃无效的字符。
返回值 返回原始数据, 或者在失败时返回 FALSE
。返回的数据可能是二进制的。
<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
echo base64_decode($str);
?>
结果:This is an encoded string
string base64_encode ( string $data
)
使用 base64 对 data
进行编码。
设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。
Base64-encoded 数据要比原始数据多占用 33% 左右的空间。
参数
data
要编码的数据。
返回值 编码后的字符串数据, 或者在失败时返回 FALSE
。
<?php
$str = 'This is an encoded string';
echo base64_encode($str);
?
结果:VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==
get_headers
get_meta_tags
string http_build_query( mixed $query_data
[, string $numeric_prefix
[, string $arg_separator
[, int $enc_type
= PHP_QUERY_RFC1738
]]] )
生成 URL-encode 之后的请求字符串
query_data
可以是数组或包含属性的对象。
一个 query_data
数组可以是简单的一维结构,也可以是由数组组成的数组(其依次可以包含其它数组)。
如果 query_data
是一个对象,只有 public 的属性会加入结果。
numeric_prefix
如果在基础数组中使用了数字下标同时给出了该参数,此参数值将会作为基础数组中的数字下标元素的前缀。
这是为了让 PHP 或其它 CGI 程序在稍后对数据进行解码时获取合法的变量名。
arg_separator
除非指定并使用了这个参数,否则会用 arg_separator.output 来分隔参数。
enc_type
默认使用 PHP_QUERY_RFC1738
。
如果 enc_type
是 PHP_QUERY_RFC1738
,则编码将会以 » RFC 1738 标准和 application/x-www-form-urlencoded 媒体类型进行编码,空格会被编码成加号(+)。
如果 enc_type
是 PHP_QUERY_RFC3986
,将根据 » RFC 3986 编码,空格会被百分号编码(%20)。
结果如下:foo=bar&baz=boom&cow=milk&php=hypertext+processor
mixed parse_url ( string $url
[, int $component
= -1 ] )
本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。
参数
url
要解析的 URL。无效字符将使用 _ 来替换。
component
PHP_URL_SCHEME
、 PHP_URL_HOST
、 PHP_URL_PORT
、 PHP_URL_USER
、 PHP_URL_PASS
、 PHP_URL_PATH
、 PHP_URL_QUERY
或 PHP_URL_FRAGMENT
的其中一个来获取 URL 中指定的部分的 string。 (除了指定为 PHP_URL_PORT
后,将返回一个 integer 的值)。
<?php
$url = 'http://username:password@hostname/path?arg=value#anchor';
print_r(parse_url($url));
echo parse_url($url, PHP_URL_PATH);
?>
结果:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)
rawurldecode — 对已编码的 URL 字符串进行解码
rawurlencode — 按照 RFC 3986 对 URL 进行编码
urldecode — 解码已编码的 URL 字符串
urlencode — 编码 URL 字符串
rawurldecode和urldecode区别:
urldecode() 会把加号('+')解码为空格,而 rawurldecode() 不会。
urlencode和rawurlencode两个方法在处理字母数字,特殊符号,中文的时候结果都是一样的,唯一的不同是对空格的处理,urlencode处理成“+”,rawurlencode处理成“%20”