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基础知识:类与对象(2) 自动加载对象
Dec 13 PHP
隐藏你的.php文件的实现方法
Mar 19 PHP
学习discuz php 引入文件的方法DISCUZ_ROOT
Jun 21 PHP
PHP 批量删除数据的方法分析
Oct 30 PHP
linux下使用ThinkPHP需要注意大小写导致的问题
Aug 02 PHP
php中执行系统命令的方法
Mar 21 PHP
PHP递归调用数组值并用其执行指定函数的方法
Apr 01 PHP
4种PHP异步执行的常用方式
Dec 24 PHP
在openSUSE42.1下编译安装PHP7 的方法
Dec 24 PHP
yii2利用自带UploadedFile实现上传图片的示例
Feb 16 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
Feb 17 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 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开发中的中文编码问题
2013/08/08 PHP
PHP使用pdo实现事务处理操作示例
2018/09/05 PHP
PHP按符号截取字符串的指定部分的实现方法
2018/09/10 PHP
PHP实现支持CURL字符串证书传输的方法
2019/03/23 PHP
php写入mysql中文乱码的实例解决方法
2019/09/17 PHP
Windows Live的@live.com域名注册漏洞 利用代码
2006/12/27 Javascript
Cookie 注入是怎样产生的
2009/04/08 Javascript
js或css文件后面跟参数的原因说明
2010/01/09 Javascript
jquery表格内容筛选实现思路及代码
2013/04/16 Javascript
javascript使用isNaN()函数判断变量是否为数字
2013/09/21 Javascript
Javascript页面跳转常见实现方式汇总
2015/11/28 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
超全面的vue.js使用总结
2017/02/12 Javascript
JavaScript转换数据库DateTime字段类型方法
2017/06/27 Javascript
详解HTTPS 的原理和 NodeJS 的实现
2017/07/04 NodeJs
Vue2 Vue-cli中使用Typescript的配置详解
2017/07/24 Javascript
使用python编写批量卸载手机中安装的android应用脚本
2014/07/21 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
python中文分词,使用结巴分词对python进行分词(实例讲解)
2017/11/14 Python
详解Python nose单元测试框架的安装与使用
2017/12/20 Python
python远程连接MySQL数据库
2019/04/19 Python
PyQt5 窗口切换与自定义对话框的实例
2019/06/20 Python
python 字典套字典或列表的示例
2019/12/16 Python
python删除某个目录文件夹的方法
2020/05/26 Python
Python获取指定网段正在使用的IP
2020/12/14 Python
HTML5 input元素类型:email及url介绍
2013/08/13 HTML / CSS
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
教导处工作制度
2014/01/18 职场文书
小学毕业家长寄语
2014/01/19 职场文书
安全生产实施方案
2014/02/23 职场文书
2014年教研活动总结范文
2014/04/26 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
Vue全家桶入门基础教程
2021/05/14 Vue.js
MySQL系列之四 SQL语法
2021/07/02 MySQL
USB TYPE-C 或将成为所有智能手机充电标准
2022/04/21 数码科技