php中url函数介绍及使用示例


Posted in PHP onFebruary 13, 2014

base64_encode — 使用 MIME base64 对数据进行编码
base64_encode() returns 使用 base64 对 data 进行编码。设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。
Base64-encoded 数据要比原始数据多占用 33% 左右的空间。

<?php
$str = 'This is an encoded string';
// VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==
echo base64_encode($str);
?>

base64_decode — 对使用 MIME base64 编码的数据进行解码
base64_decode() 对 encoded_data 进行解码,返回原始数据,失败则返回 FALSE。返回的数据可能是二进制的。

<?php
$str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw==';
// This is an encoded string
echo base64_decode($str);
?>

get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头
get_headers() 返回一个数组,包含有服务器响应一个 HTTP 请求所发送的标头。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息。
如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名。

<?php
$phpha1 = get_headers('https://3water.com');
$phpha2 = get_headers('https://3water.com', 1);
print_r($phpha1);
print_r($phpha2);
?>

输出如下:

Array
(
    [0] => HTTP/1.1 200 OK
    [1] => Server: nginx/1.2.2
    [2] => Date: Tue, 06 Nov 2012 10:17:59 GMT
    [3] => Content-Type: text/html; charset=UTF-8
    [4] => Connection: close
    [5] => X-Powered-By: PHP/5.3.8
    [6] => X-Pingback: https://3water.com/xmlrpc.php
    [7] => Via: 10.67.15.26
    [8] => Set-Cookie: saeut=124.127.138.35.1352197078737175; path=/; max-age=311040000
)
Array
(
    [0] => HTTP/1.1 200 OK
    [Server] => nginx/1.2.2
    [Date] => Tue, 06 Nov 2012 10:17:59 GMT
    [Content-Type] => text/html; charset=UTF-8
    [Connection] => close
    [X-Powered-By] => PHP/5.3.8
    [X-Pingback] => https://3water.com/xmlrpc.php
    [Via] => 10.67.15.21
    [Set-Cookie] => saeut=124.127.138.35.1352197079055460; path=/; max-age=311040000
)

get_meta_tags — 从一个文件中提取所有的 meta 标签 content 属性,返回一个数组
可以想象的到,某些网站可以方便的用此函数进行网站SEO信息的提取。

<?php
//天涯PHP博客 https://3water.com
$phpha = get_meta_tags('https://3water.com');
print_r($phpha);
?>

输出如下:

Array
(
    [keywords] => 天涯博客,PHP博客,PHP技术博客,PHP学习博客,PHP开发博客
    [description] => 天涯PHP博客是以PHP为主的学习博客,记载PHPER的学习历程,关注互联网最新发展动态。
    [generator] => WordPress 3.2.1
)

http_build_query — 生成 URL-encode 之后的请求字符串

<?php
$url = array('c'=>'blog', 'a'=>'show', 'id'=>10, 'hello', 'world');
// c=blog&a=show&id=10&0=hello&1=world
echo http_build_query($url);
// c=blog&a=show&id=10&phpha_0=hello&phpha_1=world
echo http_build_query($url, '3water_');
?>
[/code]

这个函数目前我用的最多的地方就是做各种API时,组合请求的url,非常的方便。
另外可以看到,对于数组内数字索引的成员,还可以指定前缀。

parse_url — 解析 URL,返回其组成部分
本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。

<?php
$url = 'http://tianya:3water.com@3water.com/hello.php?id=10#nav';
print_r(parse_url($url));
?>
Array
(
    [scheme] => http
    [host] => phpha.com
    [user] => tianya
    [pass] => phphadotcom
    [path] => /hello.php
    [query] => id=10
    [fragment] => nav
)

rawurlencode — 按照 RFC 1738 对 URL 进行编码
rawurldecode — 对已编码的 URL 字符串进行解码
urlencode — 编码 URL 字符串
urldecode — 解码已编码的 URL 字符串

<?php
$url = 'https://3water.com tianya';
echo urlencode($url);
echo '<br />';
echo rawurlencode($url);
echo '<br />';
echo urldecode($url);
echo '<br />';
echo rawurldecode($url);
?>

输出如下:

http%3A%2F%2F3water.com+tianya
http%3A%2F%2F3water.com%20tianya

可以看到,urlencode与rawurlencode的区别在于:
urlencode() 会把空格编码为加号(+),rawurlencode() 则把空格编码为 %20
urldecode()和rawurldecode() 则为对应的解码函数。

PHP 相关文章推荐
轻松修复Discuz!数据库
May 03 PHP
php str_pad 函数使用详解
Jan 13 PHP
《PHP编程最快明白》第二讲 数字、浮点、布尔型、字符串和数组
Nov 01 PHP
PHP的一个基础知识 表单提交
Jul 04 PHP
php array_push()数组函数:将一个或多个单元压入数组的末尾(入栈)
Jul 12 PHP
PHP连接SQLServer2005的实现方法(附ntwdblib.dll下载)
Jul 02 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
Jun 02 PHP
PHP mysql与mysqli事务使用说明 分享
Aug 17 PHP
如何利用http协议发布博客园博文评论
Aug 03 PHP
PHP树形结构tree类用法示例
Feb 01 PHP
laravel-admin 管理平台获取当前登陆用户信息的例子
Oct 08 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
Feb 03 PHP
php中的filesystem文件系统函数介绍及使用示例
Feb 13 #PHP
php实现cc攻击防御和防止快速刷新页面示例
Feb 13 #PHP
php中hashtable实现示例分享
Feb 13 #PHP
php实现下载限制速度示例分享
Feb 13 #PHP
php解压文件代码实现php在线解压
Feb 13 #PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
Feb 13 #PHP
codeigniter教程之上传视频并使用ffmpeg转flv示例
Feb 13 #PHP
You might like
支持中文的php加密解密类代码
2011/11/27 PHP
那些年一起学习的PHP(二)
2012/03/21 PHP
php连接函数implode与分割explode的深入解析
2013/06/26 PHP
PHP递归实现文件夹的复制、删除、查看大小操作示例
2017/08/11 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
2018/08/10 PHP
强大的jquery插件jqeuryUI做网页对话框效果!简单
2011/04/14 Javascript
javascript中match函数的用法小结
2014/02/08 Javascript
浅谈jQuery构造函数分析
2015/05/11 Javascript
微信开发 使用picker封装省市区三级联动模板
2016/10/28 Javascript
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
Vue.js上传图片到阿里云OSS存储的方法示例
2018/12/13 Javascript
Vue使用vue-recoure + http-proxy-middleware + vuex配合promise实现基本的跨域请求封装
2019/10/21 Javascript
15分钟学会vue项目改造成SSR(小白教程)
2019/12/17 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
返回上一个url并刷新界面的js代码
2020/09/12 Javascript
Python实现全局变量的两个解决方法
2014/07/03 Python
Python的Flask框架中@app.route的用法教程
2015/03/31 Python
python+pyqt实现右下角弹出框
2017/10/26 Python
Python实现一个带权无回置随机抽选函数的方法
2019/07/24 Python
pandas DataFrame创建方法的方式
2019/08/02 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
2019/10/09 Python
Python下划线5种含义代码实例解析
2020/07/10 Python
python用Tkinter做自己的中文代码编辑器
2020/09/07 Python
python压包的概念及实例详解
2021/02/17 Python
HTML5实现移动端复制功能
2018/04/19 HTML / CSS
澳大利亚现代波西米亚风格女装网站:Bohemian Traders
2018/04/16 全球购物
JBL加拿大官方商店:扬声器、耳机等
2020/10/23 全球购物
介绍一下#error预处理
2015/09/25 面试题
十岁生日家长答谢词
2014/01/17 职场文书
工厂保安员岗位职责
2014/01/31 职场文书
信息技术毕业生自荐信范文
2014/03/13 职场文书
团干部培训方案
2014/06/03 职场文书
给老婆的保证书
2015/01/16 职场文书
党章党规党纪学习心得体会
2016/01/14 职场文书
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL
避坑之 JavaScript 中的toFixed()和正则表达式
2022/04/19 Javascript