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 相关文章推荐
php session_start()关于Cannot send session cache limiter - headers already sent错误解决方法
Nov 27 PHP
PHP开发的一些注意点总结
Oct 12 PHP
解析如何在PHP下载文件名中解决乱码的问题
Jun 20 PHP
php中如何同时使用session和cookie来保存用户登录信息
Jul 05 PHP
php去除HTML标签实例
Nov 06 PHP
php实现图片缩放功能类
Dec 18 PHP
php带抄送和密件抄送的邮件发送方法
Mar 20 PHP
php 实现Hash表功能实例详解
Nov 29 PHP
PHP实现链式操作的三种方法详解
Nov 16 PHP
php使用mysqli和pdo扩展,测试对比mysql数据库的执行效率完整示例
May 09 PHP
php如何实现数据库的备份和恢复
Nov 30 PHP
ThinkPHP5和ThinkPHP6的区别
Mar 31 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 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
Yii2实现增删改查后留在当前页的方法详解
2017/01/13 PHP
php简单实现单态设计模式的方法分析
2017/07/28 PHP
Auntion-TableSort国人写的一个javascript表格排序的东西
2007/11/12 Javascript
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
jquery ajax例子返回值详解
2012/09/11 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
正则表达式中特殊符号及正则表达式的几种方法总结(replace,test,search)
2013/11/26 Javascript
Javascript实现字数统计
2015/07/03 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
详解nodejs 文本操作模块-fs模块(一)
2016/12/22 NodeJs
JavaScript实现定时页面跳转功能示例
2017/02/14 Javascript
jQuery插件HighCharts实现的2D回归直线散点效果示例【附demo源码下载】
2017/03/09 Javascript
基于daterangepicker日历插件使用参数注意的问题
2017/08/10 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
Vue + Vue-router 同名路由切换数据不更新的方法
2017/11/20 Javascript
关于vue中的ajax请求和axios包问题
2018/04/19 Javascript
JQuery发送ajax请求时中文乱码问题解决
2019/11/14 jQuery
vuex实现购物车的增加减少移除
2020/06/28 Javascript
[47:46]完美世界DOTA2联赛 Magma vs GXR 第三场 11.07
2020/11/10 DOTA
python实现二叉树的遍历
2017/12/11 Python
一份python入门应该看的学习资料
2018/04/11 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
Python实现iOS自动化打包详解步骤
2018/10/03 Python
python多进程使用及线程池的使用方法代码详解
2018/10/24 Python
Python第三方包PrettyTable安装及用法解析
2020/07/08 Python
python如何变换环境
2020/07/21 Python
利用css3制作3D样式按钮实现代码
2013/03/18 HTML / CSS
用css3实现转换过渡和动画效果
2020/03/13 HTML / CSS
匡威荷兰官方网站:Converse荷兰
2018/10/24 全球购物
英国在线泳装店:Simply Swim
2019/05/05 全球购物
Java中有几种类型的流?JDK为每种类型的流提供了一些抽象类以供继承,请说出他们分别是哪些类
2012/02/06 面试题
理想点亮人生演讲稿
2014/05/21 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
2016大学生党校学习心得体会
2016/01/06 职场文书