php中使用parse_url()对网址进行解析的实现代码(parse_url详解)

2015-01-24信息快讯网

parse_url用来解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分

PHP 解析 URL函数: parse_url详解
parse_url ― 解析 URL,返回其组成部分

说明

array parse_url ( string $url )
本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。
本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。
参数
url
要解析的 URL
返回值
对严重不合格的 URL,parse_url() 可能会返回 FALSE 并发出 E_WARNING。否则会返回一个关联数组,其组成部分为(至少有一个):
scheme C 如 http
host
port
user
pass
path
query C 在问号 ? 之后
fragment C 在散列符号 # 之后
范例
parse_url() 例子
 
<?php 
$url = 'http://username:password@hostname/path?arg=value#anchor'; 
print_r(parse_url($url)); 
?> 

以上例程会输出:
Array
(
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg=value
[fragment] => anchor
)

常常我们会传送一大串网址,然后要解析的话,只能不断地去切token来解析。但是在php中,一定要学会使用前人所写过的函式,这样开发速度才会快别人一截。当然,要解析网址的话,就得去找相关的指令,而今天要介绍的,就是php中的parse_url这个函式。

这个函式主要是用来解析网址,而首先先看一下这个函式原型,其官方描述如下:


mixed parse_url ( string $url [, int $component= -1 ] )

而php官方举了一个例子,而我将他扩充如下,以方便讲解。
 
<?php 
$url = 'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor'; 
print_r(parse_url($url)); 
?> 

首先,先看一下这个程式的输出结果
Array (
[scheme] => http
[host] => hostname
[user] => username
[pass] => password
[path] => /path
[query] => arg1=value1&arg2=value2
[fragment] => anchor
)
其中,scheme是指他走的路线,而host则是站台网址,user则是使用者名称,pass则是密码,path则是路径,query则是参数,fragment则是锚点。

而在「$component」的部份,则是有以下的参数可供传递。

PHP_URL_SCHEME
PHP_URL_HOST
PHP_URL_USER
PHP_URL_PASS
PHP_URL_PATH
PHP_URL_QUERY
PHP_URL_FRAGMENT
而这几个参数则分别代表了Array中的scheme、host、user、pass、path、query和fragment。

同样,举例来说,如果使用PHP_URL_PATH和PHP_URL_QUERY来说,以下为他的示范。
 
<?php 
$url = 'http://username:password@hostname/path?arg1=value1&arg2=value2#anchor'; echo nl2br(parse_url($url, PHP_URL_PATH)."\n"); 
echo nl2br(parse_url($url, PHP_URL_QUERY)."\n"); 
?> 

而输出结果将如下:
/path
arg1=value1&arg2=value2
PHP CodeBase:将时间显示为"刚刚""n分钟/小时前"的方法详解
深入PHP empty(),isset(),is_null()的实例测试详解
探讨file_get_contents与curl效率及稳定性的分析
PHP 常用数组内部函数(Array Functions)介绍
php htmlspecialchars()与shtmlspecialchars()函数的深入分析
基于PHP array数组的教程详解
深入php var_dump()函数的详解
php数组(array)输出的三种形式详解
php set_time_limit()函数的使用详解
浅谈php serialize()与unserialize()的用法
PHP中__get()和__set()的用法实例详解
CURL的学习和应用(附多线程实现)
基于PHP CURL获取邮箱地址的详解
php curl的深入解析
Window 7/XP 安装Apache 2.4与PHP 5.4 的过程详解
Apache服务器无法使用的解决方法
PHP命名空间(Namespace)的使用详解
基于curl数据采集之正则处理函数get_matches的使用
使用Apache的htaccess防止图片被盗链的解决方法
Apache下禁止php文件被直接访问的解决方案
超级实用的7个PHP代码片段分享
选择PHP作为网站开发语言的原因分享
php读取mysql乱码,用set names XXX解决的原理分享
php curl常见错误:SSL错误、bool(false)
url decode problem 解决方法
php使用Smarty的相关注意事项及访问变量的几种方式
在PHP中利用wsdl创建标准webservice的实现代码
php urlencode()与urldecode()函数字符编码原理详解
PHP性能优化工具篇Benchmark类调试执行时间
PHP性能优化准备篇图解PEAR安装
PHP的array_diff()函数在处理大数组时的效率问题
php数组函数序列之array_intersect() 返回两个或多个数组的交集数组
php空间不支持socket但支持curl时recaptcha的用法
php获取远程图片的两种 CURL方式和sockets方式获取远程图片
php数组函数序列之array_search()- 按元素值返回键名
Pain 全世界最小最简单的PHP模板引擎 (普通版)
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
PHP pathinfo()获得文件的路径、名称等信息说明
PHP 命令行工具 shell_exec, exec, passthru, system详细使用介绍
PHP正确配置mysql(apache环境)
©2014-2024 dbsqp.com