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 相关文章推荐
网页游戏开发入门教程二(游戏模式+系统)
Nov 02 PHP
php ss7.5的数据调用 (笔记)
Mar 08 PHP
php中修改浏览器的User-Agent来伪装你的浏览器和操作系统
Jul 29 PHP
PHP中usort在值相同时改变原始位置问题的解决方法
Nov 27 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 PHP
PHP统计二维数组元素个数的方法
Nov 12 PHP
PHP独立Session数据库存储操作类分享
Jun 11 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
ThinkPHP中的create方法与自动令牌验证实例教程
Aug 22 PHP
PHP实现的浏览器检查类
Apr 11 PHP
php获取linux命令结果的实例
Mar 13 PHP
Laravel ORM 数据model操作教程
Oct 21 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
经典的星际争霸,满是回忆的BGM
2020/04/09 星际争霸
php中禁止单个IP与ip段访问的代码小结
2012/07/04 PHP
PHP中比较两个字符串找出第一个不同字符位置例子
2014/04/08 PHP
smarty内置函数{loteral}、{ldelim}和{rdelim}用法实例
2015/01/22 PHP
PHP互换两个变量值的方法(不用第三变量)
2016/11/14 PHP
PHP 匿名函数与注意事项详细介绍
2016/11/26 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
php获取微信openid方法总结
2019/10/10 PHP
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
页面调用单个swf文件,嵌套出多个方法。
2011/11/21 Javascript
jquery操作HTML5 的data-*的用法实例分享
2014/08/17 Javascript
js实现绿白相间竖向网页百叶窗动画切换效果
2015/03/02 Javascript
IE7浏览器窗口大小改变事件执行多次bug及IE6/IE7/IE8下resize问题
2015/08/21 Javascript
JavaScript基础篇(6)之函数表达式闭包
2015/12/11 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
Layui数据表格之获取表格中所有的数据方法
2018/08/20 Javascript
Vue监听事件实现计数点击依次增加的方法
2018/09/26 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
javascript实现拖拽碰撞检测
2020/03/12 Javascript
vue在App.vue文件中监听路由变化刷新页面操作
2020/08/14 Javascript
原生JavaScript实现贪吃蛇游戏
2020/11/04 Javascript
Python实现翻转数组功能示例
2018/01/12 Python
Python实现PS滤镜特效之扇形变换效果示例
2018/01/26 Python
python实现数据分析与建模
2019/07/11 Python
基于CentOS搭建Python Django环境过程解析
2020/08/24 Python
Too Faced官网:美国知名彩妆品牌
2017/03/07 全球购物
企业管理培训感言
2014/01/27 职场文书
打架检讨书300字
2014/02/02 职场文书
2014年道德讲堂实施方案
2014/03/05 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
还款承诺书范本
2015/01/20 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
golang中的空接口使用详解
2021/03/30 Python
golang 实现Location跳转方式
2021/05/02 Golang
Python中的程序流程控制语句
2022/02/24 Python