www.adminn.cn
站长正能量分享网!

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

AD:阿里云服务器企业会员更优惠 腾讯云香港,韩国免备案服务器1.8折优惠

本文主要介绍了PHP处理url字符串编码、解码与解析。下面进行详细的举例说明

base64_encode — 使用 MIME base64 对数据进行编码

base64_encode() returns 使用 base64 对 data 进行编码。设计此种编码是为了使二进制数据可以通过非纯 8-bit 的传输层传输,例如电子邮件的主体。

Base64-encoded 数据要比原始数据多占用 33% 左右的空间,代码如下:

  1. <?php 
  2. $str = 'This is an encoded string'
  3. // VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw== 
  4. echo base64_encode($str); 
  5. ?> 

base64_decode — 对使用 MIME base64 编码的数据进行解码。

base64_decode() 对 encoded_data 进行解码,返回原始数据,失败则返回 FALSE。返回的数据可能是二进制的,代码如下:

  1. <?php 
  2. $str = 'VGhpcyBpcyBhbiBlbmNvZGVkIHN0cmluZw=='
  3. // This is an encoded string 
  4. echo base64_decode($str); 
  5. ?> 

get_headers — 取得服务器响应一个 HTTP 请求所发送的所有标头

get_headers() 返回一个数组,包含有服务器响应一个 HTTP 请求所发送的标头。如果失败则返回 FALSE 并发出一条 E_WARNING 级别的错误信息。

如果将可选的 format 参数设为 1,则 get_headers() 会解析相应的信息并设定数组的键名,代码如下:

  1. <?php 
  2. $phpha1 = get_headers('https://www.phpfensi.com'); 
  3. $phpha2 = get_headers('https://www.phpfensi.com', 1); 
  4. print_r($phpha1); 
  5. print_r($phpha2); 
  6. ?> 

输出如下:

  1. Array 
  2.     [0] => HTTP/1.1 200 OK 
  3.     [1] => Server: nginx/1.2.2 
  4.     [2] => Date: Tue, 06 Nov 2012 10:17:59 GMT 
  5.     [3] => Content-Type: text/html; charset=UTF-8 
  6.     [4] => Connection: close 
  7.     [5] => X-Powered-By: PHP/5.3.8 
  8.     [6] => X-Pingback: https://www.phpfensi.com/xmlrpc.php 
  9.     [7] => Via: 10.67.15.26 
  10.     [8] => Set-Cookie: saeut=124.127.138.35.1352197078737175; path=/; max-age=311040000 
  11. Array 
  12.     [0] => HTTP/1.1 200 OK 
  13.     [Server] => nginx/1.2.2 
  14.     [Date] => Tue, 06 Nov 2012 10:17:59 GMT 
  15.     [Content-Type] => text/html; charset=UTF-8 
  16.     [Connection] => close 
  17.     [X-Powered-By] => PHP/5.3.8 
  18.     [X-Pingback] => https://www.phpfensi.com/xmlrpc.php 
  19.     [Via] => 10.67.15.21 
  20.     [Set-Cookie] => saeut=124.127.138.35.1352197079055460; path=/; max-age=311040000 

get_meta_tags — 从一个文件中提取所有的 meta 标签 content 属性,返回一个数组,可以想象的到,某些网站可以方便的用此函数进行网站SEO信息的提取,代码如下:

  1. <?php 
  2. //天涯PHP博客 https://www.phpfensi.com 
  3. $phpha = get_meta_tags('https://www.phpfensi.com'); 
  4. print_r($phpha); 
  5. ?> 

输出如下:

  1. Array 
  2.     [keywords] => 天涯博客,PHP博客,PHP技术博客,PHP学习博客,PHP开发博客 
  3.     [description] => 天涯PHP博客是以PHP为主的学习博客,记载PHPER的学习历程,关注互联网最新发展动态。 
  4.     [generator] => WordPress 3.2.1 
  5.  
  6.  
  7. http_build_query — 生成 URL-encode 之后的请求字符串 
  8.  
  9. <?php 
  10. $url = array('c'=>'blog''a'=>'show''id'=>10, 'hello''world'); 
  11. // c=blog&a=show&id=10&0=hello&1=world 
  12. echo http_build_query($url); 
  13. // c=blog&a=show&id=10&phpha_0=hello&phpha_1=world 
  14. echo http_build_query($url'jb51_'); 
  15. ?> 
  16. [/code] 

这个函数目前我用的最多的地方就是做各种API时,组合请求的url,非常的方便。

另外可以看到,对于数组内数字索引的成员,还可以指定前缀。

parse_url — 解析 URL,返回其组成部分

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

  1. <?php 
  2. $url = 'http://tianya:phpfensi@phpfensi.com/hello.php?id=10#nav'
  3. print_r(parse_url($url)); 
  4. ?> 
  5. Array 
  6.     [scheme] => http 
  7.     [host] => phpfensi.com 
  8.     [user] => tianya 
  9.     [pass] => phpfensicom 
  10.     [path] => /hello.php 
  11.     [query] => id=10 
  12.     [fragment] => nav 

rawurlencode — 按照 RFC 1738 对 URL 进行编码

rawurldecode — 对已编码的 URL 字符串进行解码

urlencode — 编码 URL 字符串

urldecode — 解码已编码的 URL 字符串

代码如下:

  1. <?php 
  2. $url = 'https://www.phpfensi.com tianya'
  3. echo urlencode($url); 
  4. echo '<br />'
  5. echo rawurlencode($url); 
  6. echo '<br />'
  7. echo urldecode($url); 
  8. echo '<br />'
  9. echo rawurldecode($url); 
  10. ?> 

输出如下:

  1. http%3A%2F%2Fwww.phpfensi.com+tianya 
  2. http%3A%2F%2Fwww.phpfensi.com%20tianya 

可以看到,urlencode与rawurlencode的区别在于:

urlencode() 会把空格编码为加号(+),rawurlencode() 则把空格编码为 %20

urldecode()和rawurldecode() 则为对应的解码函数。

模板优惠价: (点击购买)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《php中url函数介绍及使用示例》
文章链接:https://www.adminn.cn/news/6783.html
本站资源模板仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。2021.5月起,网站调整,暂不再分享免费模板。谢谢理解

Adminn.Cn 站长分享圈

帝国CMS精品模板腾讯云优惠券,代金券

本站源码仅供本地环境下学习借鉴研究使用!

源码请勿用于任何涉灰站点!净化网络,站长更有责!

支付宝扫一扫打赏