php中url函数介绍及使用示例

 更新时间:2014年02月13日 11:10:58   作者:  
本文主要介绍了PHP处理url字符串编码、解码与解析。下面进行详细的举例说明

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://www.jb51.net');
$phpha2 = get_headers('https://www.jb51.net', 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://www.jb51.net/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://www.jb51.net/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://www.jb51.net
$phpha = get_meta_tags('https://www.jb51.net');
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, 'jb51_');
?>
[/code]

这个函数目前我用的最多的地方就是做各种API时,组合请求的url,非常的方便。
另外可以看到,对于数组内数字索引的成员,还可以指定前缀。

parse_url — 解析 URL,返回其组成部分
本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。

复制代码 代码如下:

<?php
$url = 'http://tianya:jb51.net@jb51.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://www.jb51.net tianya';
echo urlencode($url);
echo '<br />';
echo rawurlencode($url);
echo '<br />';
echo urldecode($url);
echo '<br />';
echo rawurldecode($url);
?>

输出如下:

复制代码 代码如下:

http%3A%2F%2Fwww.jb51.net+tianya
http%3A%2F%2Fwww.jb51.net%20tianya

可以看到,urlencode与rawurlencode的区别在于:
urlencode() 会把空格编码为加号(+),rawurlencode() 则把空格编码为 %20
urldecode()和rawurldecode() 则为对应的解码函数。

相关文章

  • thinkphp实现上一篇与下一篇的方法

    thinkphp实现上一篇与下一篇的方法

    这篇文章主要介绍了thinkphp实现上一篇与下一篇的方法,以实例形式对比分析了两种不同的实现方法供大家选择,方法二在方法一的基础上增加了判断的功能,是非常实用的技巧,需要的朋友可以参考下
    2014-12-12
  • laravel 输出最后执行sql 附:whereIn的使用方法

    laravel 输出最后执行sql 附:whereIn的使用方法

    今天小编就为大家分享一篇laravel 输出最后执行sql 附:whereIn的使用方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-10-10
  • VPS中使用LNMP安装WordPress教程

    VPS中使用LNMP安装WordPress教程

    这篇文章主要介绍了VPS中使用LNMP安装WordPress教程,需要的朋友可以参考下
    2014-12-12
  • php实现memcache缓存示例讲解

    php实现memcache缓存示例讲解

    共享内存是一种在相同机器中的应用程序之间交换数据的有效方式,本文说的是php实现memcache缓存示例,大家参考使用吧
    2013-12-12
  • Yii2实现上下联动下拉框功能的方法

    Yii2实现上下联动下拉框功能的方法

    这篇文章主要介绍了Yii2实现上下联动下拉框功能的方法,简单分析了上下联动下拉框功能的概念、原理与实现技巧,需要的朋友可以参考下
    2016-08-08
  • Ajax实时验证用户名/邮箱等是否已经存在的代码打包

    Ajax实时验证用户名/邮箱等是否已经存在的代码打包

    一个网站采用Ajax技术,不仅可以改善网站的用户体验性,而且大大节约了宝贵的带宽,减轻了服务器负荷(不再需要交互整个网页内容,而是局部)。
    2011-12-12
  • PHP验证码类ValidateCode解析

    PHP验证码类ValidateCode解析

    这篇文章主要为大家详细解析了PHP验证码类ValidateCode,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-01-01
  • php设计模式之观察者模式定义与用法经典示例

    php设计模式之观察者模式定义与用法经典示例

    这篇文章主要介绍了php设计模式之观察者模式定义与用法,结合完整实例形式详细分析了php观察者模式概念、原理、定义与使用方法,代码注释包含详尽的说明,需要的朋友可以参考下
    2019-09-09
  • PHP Header失效的原因分析及解决方法

    PHP Header失效的原因分析及解决方法

    下面小编就为大家带来一篇PHP Header失效的原因分析及解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-11-11
  • php连接mssql数据库的几种方法

    php连接mssql数据库的几种方法

    数据库查询不外乎4个步骤,1、建立连接。2、输入查询代码。3、建立查询并取出数据。4、关闭连接。 php连接mssql数据库有几个注意事项,尤其mssql的多个版本、32位、64位都有区别。
    2013-02-02

最新评论