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创建PDF中文文档
Oct 09 PHP
一个显示天气预报的程序
Oct 09 PHP
php+mysql实现无限级分类 | 树型显示分类关系
Nov 19 PHP
PHP随机数生成代码与使用实例分析
Apr 08 PHP
php利用iframe实现无刷新文件上传功能的代码
Sep 29 PHP
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
php获取qq用户昵称和在线状态(实例分析)
Oct 27 PHP
php把大写命名转换成下划线分割命名
Apr 27 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
Jul 02 PHP
php版微信自动登录并获取昵称的方法
Sep 23 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
如何用RabbitMQ和Swoole实现一个异步任务系统
May 29 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
VIM中设置php自动缩进为4个空格的方法详解
2013/06/14 PHP
基于xcache的配置与使用详解
2013/06/18 PHP
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
php 截取GBK文档某个位置开始的n个字符方法
2017/03/08 PHP
PHP实现验证码校验功能
2017/11/16 PHP
Google Suggest ;-) 基于js的动态下拉菜单
2006/10/11 Javascript
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
jquery动态加载图片数据练习代码
2011/08/04 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
JS实现让访问者自助选择网页文字颜色的方法
2015/02/24 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
ionic 3.0+ 项目搭建运行环境的教程
2017/08/09 Javascript
vue实现记事本功能
2019/06/26 Javascript
[46:43]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第三局
2016/02/28 DOTA
使用Python神器对付12306变态验证码
2016/01/05 Python
Python内置函数OCT详解
2016/11/09 Python
Go/Python/Erlang编程语言对比分析及示例代码
2018/04/23 Python
python中的tcp示例详解
2018/12/09 Python
python实现从ftp服务器下载文件
2020/03/03 Python
django 多数据库及分库实现方式
2020/04/01 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
行政总经理岗位职责
2013/12/05 职场文书
英语道歉信范文
2014/01/09 职场文书
上课睡觉检讨书
2014/01/28 职场文书
户外婚礼策划方案
2014/02/08 职场文书
文明演讲稿范文
2014/05/12 职场文书
大学生创业计划书
2014/08/14 职场文书
运动会广播稿50字-100字
2014/10/11 职场文书
小学生读书笔记范文
2015/06/30 职场文书
幼儿园体操比赛口号
2015/12/25 职场文书
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python
整理Python中常用的conda命令操作
2021/06/15 Python
Python闭包的定义和使用方法
2022/04/11 Python