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伪造referer实例代码
Sep 20 PHP
一个php导出oracle库的php代码
Apr 20 PHP
PHP执行zip与rar解压缩方法实现代码
Dec 05 PHP
PHPwind整合最土系统用户同步登录实现方法
Dec 08 PHP
VIM中设置php自动缩进为4个空格的方法详解
Jun 14 PHP
解析zend Framework如何自动加载类
Jun 28 PHP
图解找出PHP配置文件php.ini的路径的方法
Aug 20 PHP
必须收藏的23个php实用代码片段
Feb 02 PHP
php metaphone()函数及php localeconv() 函数实例解析
May 15 PHP
php获取一定范围内取N个不重复的随机数
May 28 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
Jul 09 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 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的dl函数用法实例
2014/11/06 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
javascript+iframe 实现无刷新载入整页的代码
2010/03/17 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
JavaScript中的document.referrer在各种浏览器测试结果
2014/07/18 Javascript
jQuery表格列宽可拖拽改变且兼容firfox
2014/09/03 Javascript
JS简单计算器实例
2015/01/20 Javascript
微信小程序 列表的上拉加载和下拉刷新的实现
2017/04/01 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
js实现随机数小游戏
2019/06/28 Javascript
python 图片验证码代码分享
2012/07/04 Python
跟老齐学Python之集合的关系
2014/09/24 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
Python正则表达式实现简易计算器功能示例
2019/05/07 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
2019/11/11 Python
pandas 中对特征进行硬编码和onehot编码的实现
2019/12/20 Python
Python xlwt模块使用代码实例
2020/06/10 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
matplotlib绘制正余弦曲线图的实现
2021/02/22 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
小程序瀑布流解决左右两边高度差距过大的问题
2019/02/20 HTML / CSS
荷兰网上买鞋:MooieSchoenen.nl
2017/09/12 全球购物
UGG澳洲官网:UGG Australia
2018/04/26 全球购物
Oracle里面常用的数据字典有哪些
2014/02/14 面试题
汽车运用工程专业毕业生推荐信
2013/12/25 职场文书
活动总结格式
2014/08/30 职场文书
简单租房协议书(范本)
2014/10/13 职场文书
加强作风建设演讲稿
2014/10/24 职场文书
大学生团员个人总结
2015/02/14 职场文书
新生儿未入户证明
2015/06/23 职场文书
机关干部作风整顿心得体会
2016/01/22 职场文书
Redis缓存-序列化对象存储乱码问题的解决
2021/06/21 Redis
MySQL多表查询机制
2022/03/17 MySQL