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 结果集的分页实现代码
Mar 10 PHP
php file_get_contents函数轻松采集html数据
Apr 22 PHP
PHP写UltraEdit插件脚本实现方法
Dec 26 PHP
php删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
基于PHP5魔术常量与魔术方法的详解
Jun 13 PHP
phpstrom使用xdebug配置方法
Dec 17 PHP
Thinkphp中import的几个用法详细介绍
Jul 02 PHP
php常用图片处理类
Mar 16 PHP
java模拟PHP的pack和unpack类
Apr 13 PHP
Yii2.0表关联查询实例分析
Jul 18 PHP
tp5框架内使用tp3.2分页的方法分析
May 05 PHP
laravel实现上传图片,并且制作缩略图,按照日期存放的代码
Oct 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 pack与unpack 摸板字符字符含义
2009/10/29 PHP
PHP+HTML+JavaScript+Css实现简单爬虫开发
2016/03/28 PHP
thinkphp分页实现效果
2016/10/13 PHP
PHP中soap用法示例【SoapServer服务端与SoapClient客户端编写】
2018/12/25 PHP
基于Laravel 5.2 regex验证的正确写法
2019/09/29 PHP
js DOM模型操作
2009/12/28 Javascript
jquery.validate分组验证代码
2011/03/17 Javascript
修复IE9&amp;safari 的sort方法
2011/10/21 Javascript
js 浏览器事件介绍
2012/03/30 Javascript
struts2+jquery+json实现异步加载数据(自写)
2013/06/24 Javascript
JS实现两个大数(整数)相乘
2014/04/28 Javascript
jQuery EasyUI右键菜单实现关闭标签/选项卡
2016/10/10 Javascript
javaScript中定义类或对象的五种方式总结
2016/12/04 Javascript
nodejs acl的用户权限管理详解
2018/03/14 NodeJs
vue router的基本使用和配置教程
2018/11/05 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
稍微学一下Vue的数据响应式(Vue2及Vue3区别)
2019/11/21 Javascript
Vuex模块化应用实践示例
2020/02/03 Javascript
js实现登录时记住密码的方法分析
2020/04/05 Javascript
VueQuillEditor富文本上传图片(非base64)
2020/06/03 Javascript
国内常用的js类库大全(CDN公共库)
2020/06/24 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
python使用chardet判断字符串编码的方法
2015/03/13 Python
解析Python中的变量、引用、拷贝和作用域的问题
2015/04/07 Python
快速入手Python字符编码
2016/08/03 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
2017/12/03 Python
Keras实现DenseNet结构操作
2020/07/06 Python
详解python模块pychartdir安装及导入问题
2020/10/22 Python
Pycharm安装第三方库失败解决方案
2020/11/17 Python
印度网上购物首选目的地:Flipkart
2016/08/01 全球购物
化工操作工岗位职责
2014/04/29 职场文书
驻村工作先进事迹
2014/08/14 职场文书
幼儿园端午节活动总结
2015/05/05 职场文书
oracle索引总结
2021/09/25 Oracle
Mybatis是这样防止sql注入的
2021/12/06 Java/Android