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 相关文章推荐
一个分页的论坛
Oct 09 PHP
phpmyadmin中配置文件现在需要绝密的短语密码的解决方法
Feb 11 PHP
一个很不错的PHP翻页类
Jun 01 PHP
用PHP查询搜索引擎排名位置的代码
Jan 05 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
一个简洁实用的PHP缓存类完整实例
Jul 26 PHP
php根据指定位置和长度获得子字符串的方法
Mar 17 PHP
PHP实现多文件上传的方法
Jul 08 PHP
浅谈PHP正则中的捕获组与非捕获组
Jul 18 PHP
Yii2实现同时搜索多个字段的方法
Aug 10 PHP
基于php编程规范(详解)
Aug 17 PHP
PHP实现的AES 128位加密算法示例
Sep 16 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实例对象中的private属性详解
2017/10/12 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
JavaScript 题型问答有答案参考
2010/02/17 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
jquery sortable的拖动方法示例详解
2014/01/16 Javascript
Javascript 拖拽雏形中的一些问题(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
BootStrap智能表单实战系列(七)验证的支持
2016/06/13 Javascript
JS控制层作圆周运动的方法
2016/06/20 Javascript
js 基础篇必看(点击事件轮播图的简单实现)
2016/08/20 Javascript
select标签设置默认选中的选项方法
2018/03/02 Javascript
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
浅谈vuex actions和mutation的异曲同工
2018/12/13 Javascript
Vue export import 导入导出的多种方式与区别介绍
2020/02/12 Javascript
[00:32]2018DOTA2亚洲邀请赛VGJ.T出场
2018/04/03 DOTA
windows系统中python使用rar命令压缩多个文件夹示例
2014/05/06 Python
python使用calendar输出指定年份全年日历的方法
2015/04/04 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
用tensorflow实现弹性网络回归算法
2018/01/09 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
异步任务队列Celery在Django中的使用方法
2018/06/07 Python
Python列表对象实现原理详解
2019/07/01 Python
selenium+PhantomJS爬取豆瓣读书
2019/08/26 Python
python sorted方法和列表使用解析
2019/11/18 Python
django列表筛选功能的实现代码
2020/03/27 Python
在脚本中单独使用django的ORM模型详解
2020/04/01 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
台湾深度自由行旅游平台:Tripbaa趣吧
2017/10/10 全球购物
小区门卫工作职责
2013/12/14 职场文书
小学班长竞选演讲稿
2014/04/24 职场文书
迎新晚会策划方案
2014/06/13 职场文书
小学生国庆节演讲稿
2014/09/05 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
党的群众路线学习笔记
2014/11/06 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
入党心得体会
2019/06/20 职场文书
导游词之长城八达岭
2019/09/24 职场文书