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 相关文章推荐
支持oicq头像的留言簿(一)
Oct 09 PHP
PHP 数组排序方法总结 推荐收藏
Jun 30 PHP
在win系统安装配置 Memcached for PHP 5.3 图文教程
Mar 03 PHP
分享php分页的功能模块
Jun 16 PHP
thinkphp分页集成实例
Jul 24 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 PHP
PHP实现支持CURL字符串证书传输的方法
Mar 23 PHP
laravel实现前后台路由分离的方法
Oct 13 PHP
Laravel 登录后清空COOKIE的操作方法
Oct 14 PHP
Laravel 自动生成验证的实例讲解:login / logout
Oct 14 PHP
Laravel 修改默认日志文件名称和位置的例子
Oct 17 PHP
PHP的new static和new self的区别与使用
Nov 27 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编写PDF文档生成器
2006/10/09 PHP
php中socket的用法详解
2014/10/24 PHP
PHP实现抓取Google IP并自动修改hosts文件
2015/02/12 PHP
thinkphp3.x中session方法的用法分析
2016/05/20 PHP
PHP7下协程的实现方法详解
2017/12/17 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
Discuz! 6.1_jQuery兼容问题
2008/09/23 Javascript
Javascript isArray 数组类型检测函数
2009/10/08 Javascript
Extjs学习笔记之九 数据模型(上)
2010/01/11 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
Javascript Objects详解
2014/09/04 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
2015/10/23 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
vue路由守卫+登录态管理实例分析
2019/05/21 Javascript
React 全自动数据表格组件——BodeGrid的实现思路
2019/06/12 Javascript
vue 子组件和父组件传值的示例
2020/09/11 Javascript
python编程实现希尔排序
2017/04/13 Python
python实现彩色图转换成灰度图
2019/01/15 Python
Django使用redis缓存服务器的实现代码示例
2019/04/28 Python
Python自动抢红包教程详解
2019/06/11 Python
matplotlib绘制多个子图(subplot)的方法
2019/12/03 Python
nginx搭建基于python的web环境的实现步骤
2020/01/03 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
pycharm 实现复制一行的快捷键
2021/01/15 Python
pycharm最新激活码有效期至2100年(亲测可用)
2021/02/05 Python
英国床垫在线:Mattress Online
2016/12/07 全球购物
Black Halo官方网站:购买连衣裙、礼服和连体裤
2018/06/13 全球购物
使用useBean标志初始化BEAN时如何接受初始化参数
2012/02/11 面试题
人力资源专员自我评价怎么写
2013/09/19 职场文书
实习生工作证明范本
2014/09/14 职场文书
班主任先进事迹材料
2014/12/17 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
利用 Python 的 Pandas和 NumPy 库来清理数据
2022/04/13 Python
Python PIL按比例裁剪图片
2022/05/11 Python
mysql实现将字符串字段转为数字排序或比大小
2022/06/14 MySQL