|
URL 处理函数
序号 |
函数 |
说明 |
1 |
parse_str |
将字符串解析成多个变量,处理 url |
2 |
parse_url |
解析 URL,返回其组成部分 |
3 |
http_build_query |
生成 URL-encode 之后的请求字符串 |
4 |
urldecode |
解码已编码的 URL 字符串 |
5 |
urlencode |
编码 URL 字符串 |
6 |
base64_encode |
MIME base64 数据解码 |
7 |
base64_decode |
MIME base64 数据编码 |
备注代码
<?php
$str = ' This is a string ';
// echo strlen($str), '<br>';
// echo strlen(trim($str)), '<br>';
// echo strlen(ltrim($str)), '<br>';
// echo strlen(rtrim($str)), '<br>';
$str = '123456890php.cn php中文网 this is good site654321';
// echo trim($str, '12'), '<br>';
// echo trim($str, '1..6'), '<br>';
// echo trim($str, '0..9'), '<br>';
// chop()
echo '<hr>';
// md5():返回32位随机字符串,由16进制的字符组成, 0-9, a-f
echo md5('admin888'), '<br>';
// 40位
// echo sha1(md5(sha1('admin888'. 'php.cn....345**==='))), '<br>';
// echo '<hr>';
echo strip_tags('<h2>php.cn</h2><?php echo "Hello" ?>');
// echo '<hr>';
// parse_str(): 解析查询字符串
// http://php.edu/0422/case/demo2.php?id=5&name=admin&role=1
// ?id=5&name=admin&role=1: 查询字符串
// echo $queryString = $_SERVER['QUERY_STRING'];
parse_str( $queryString, $arr);
// printf('<pre>%s</pre>', print_r($arr, true));
// echo '<hr>';
// parse_url(): 解析url
$url = 'http://php.edu/0422/case/demo2.php';
$urlArr = parse_url( $url);
printf('<pre>%s</pre>', print_r($urlArr, true));
$data = ['name'=>'peter zhu', 'age'=>30];
echo http_build_query($data). '<hr>';
// name=peter+zhu&age=30
// 参数支持对象
// echo http_build_query((new class {
// public $name = 'admin';
// public $email = 'admin@php.cn';
// public $age = 99;
// })). '<br>';
echo '<hr>';
$img = base64_encode(file_get_contents('1.jpg'));
echo '<hr>';
echo "<img src='data:image/>jpeg;base64,{$img}'>" . '<br>';
// 因为编码之后, 编码可以随html同步发送到浏览器,减少了http请求
file_put_contents('gril.jpg',base64_decode($img));
echo "<img src='gril.jpg'>" . '<br>';
附录 1: $_SERVER 预定义变量
以 URL 为例: http://php.io/case/demo12.php/m/admin/c/add?id=5&name=admin
序号 |
变量 |
描述 |
示例 |
1 |
UNIQUE_ID |
HTTP 请求的唯一标识符 |
Xn4DhH8AAAEAAAWiEO0AAAAB |
2 |
HTTP_HOST |
HTTP 主机名/域名 |
php.io |
3 |
SERVER_ADDR |
HTTP 主机名 IP 地址 |
127.0.0.1 / 0:0:0:1 / ::1 |
4 |
SERVER_PORT |
Web 服务器使用的端口 |
80 |
5 |
REMOTE_PORT |
用户机器连接到 Web 服务器的端口号 |
52706 |
6 |
SERVER_NAME |
Appcha 配置的 ServerName |
php.io |
7 |
DOCUMENT_ROOT |
当前脚本所在的根目录(配置文件中) |
/Documents/web/php/case |
8 |
SCRIPT_FILENAME |
当前执行脚本的绝对路径 |
/Documents/web/php/case/demo1.php |
9 |
SCRIPT_NAME |
当前执行脚本的路径与文件名 |
/case/demo1.php |
10 |
PHP_SELF |
当前脚本名(含 pathinfo) |
/case/demo1.php/m/admin/c/add |
11 |
PATH_INFO |
执行脚本与查询字符串之间的路径信息 |
/m/admin/c/add |
12 |
PATH_TRANSLATED |
脚本所在文件系统路径(限 pathinfo) |
/Documents/web/php/m/admin/c/add |
13 |
REQUEST_URI |
当前访问的 URL(pathinfo,查询字符串) |
case/demo1.php/m/admin/c/add?id=5&... |
14 |
QUERY_STRING |
查询字符串(不含前导问号? ) |
id=5&name=admin |
15 |
REQUEST_METHOD |
HTTP 请求类型 |
POST / GET |
16 |
HTTP_REFERER |
引导用户进入当前页面的 URL |
如果是直接进入当前页,则不存在该值 |
17 |
HTTP_USER_AGENT |
客户端/浏览器信息get_browser() |
Mozilla/5.0 (Macintosh; Intel Mac ... |
18 |
SERVER_SOFTWARE |
web 服务器软件 |
Apache |
19 |
SERVER_PROTOCOL |
web 服务器 HTTP 协议 |
HTTP/1.1 |
20 |
GATEWAY_INTERFACE |
网关接口:服务器使用 CGI 规范 |
CGI/1.1 |
21 |
REQUEST_TIME |
HTTP 请求开始的时间戳 |
1585320730 |
22 |
REQUEST_TIME_FLOAT |
HTTP 请求开始的时间戳(微秒级) |
1585320730.803 |
23 |
argv |
传递给脚本的参数数组 |
Array ( [0] => id=5&name=admin ) |
24 |
argc |
传递给脚本的参数数量 |
1 |
25 |
HTTP_ACCEPT |
客户端请求/接受文档类型 |
text/html,application/xhtml+xml,appli... |
26 |
HTTP_ACCEPT_ENCODING |
HTTP 压缩 HTML 的编码方式 |
gzip, deflate |
27 |
HTTP_ACCEPT_LANGUAGE |
HTTP 接受的语言 |
zh-CN,zh;q=0.9,en;q=0.8,ja;q=0.7 |
附录 2: urlencode() :对 url 变量值进行编码
除了-\_. 之外的所有字符 |
空格 |
编码方式 |
% +2 位 16 进制数 |
+ |
application/x-www-form-urlencoded |
附录 3: base64_encode() :用 base64 对 data 进行编码
- 为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体
- 下载链接, 图片等都可以使用它进行加密处理
- 加密之后的数据比原始数据要多占据 33%的空间大小
附录 4: Data URI Scheme(协议)
形如:data:text/jpeg;base64,/9j/4AAQSkZJRgABA... 这样的资源链接
序号 |
协议 |
说明 |
1 |
data: |
文本数据 |
2 |
data:text/plain, |
文本数据 |
3 |
data:text/html, |
HTML 代码 |
4 |
data:text/css;base64, |
css 代码 |
5 |
data:text/javascript;base64, |
javascript 代码 |
6 |
data:image/x-icon;base64, |
base64 编码的 icon 图片数据 |
7 |
data:image/gif;base64, |
base64 编码的 gif 图片数据 |
8 |
data:image/png;base64, |
base64 编码的 png 图片数据 |
9 |
data:image/jpeg;base64, |
base64 编码的 jpeg 图片数据 |
|
|