开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1370|回复: 0
收起左侧

[PHP相关教程] PHP - URL 处理函数

[复制链接]
发表于 2020-7-16 10:43:51 | 显示全部楼层 |阅读模式   山东省德州市

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 图片数据

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表