自定义的parse_url逆向函数http_build_url,将数组转为url字符串
2024-09-25 07:16:42
parse_url函数可以讲一个url字符串解析成一个数组,但是php中似乎没有parse_url的逆向函数来讲一个解析出来的数组组合成url字符串,只有一个http_build_query用来将数组组合成query string。于是我自己写了一个http_build_url函数将parse_url解析出来的数组组合成完整的url。
/**
* 根据parse_url格式的数组生成完整的url
* @param array $arr 接受parse_url解析出来的所有参数,完整参数实例如下:
* Array
* (
* [scheme] => http // 协议
* [host] => www.baidu.com // 主机
* [port] => 80 // 端口,可选
* [path] => /path/file.php // 路径(文件名),可选
* [query] => a=aaa&b=aaabbb // 参数(query string),可选
* [fragment] => 123 // 附加部分或者叫做锚点(#后面的),可选
* )
*/
function http_build_url($url_arr){
$new_url = $url_arr['scheme'] . "://".$url_arr['host'];
if(!empty($url_arr['port']))
$new_url = $new_url.":".$url_arr['port'];
$new_url = $new_url . $url_arr['path'];
if(!empty($url_arr['query']))
$new_url = $new_url . "?" . $url_arr['query'];
if(!empty($url_arr['fragment']))
$new_url = $new_url . "#" . $url_arr['fragment'];
return $new_url;
}
使用测试:
$url = "http://www.dragondean.cn:80/path/file.php?a=aaa&b=bcdefg#123";
$url_arr = parse_url($url);
print_r($url_arr); $url_new = http_build_url($url_arr);
echo $url_new;
运行结果:
Array
(
[scheme] => http
[host] => www.dragondean.cn
[port] => 80
[path] => /path/file.php
[query] => a=aaa&b=bcdefg
[fragment] => 123
)
http://www.dragondean.cn:80/path/file.php?a=aaa&b=bcdefg#123
最新文章
- java中是否会存在内存泄漏
- ios开发--GCD使用介绍:4-延迟执行操作
- Java 8 VM GC Tunning Guide Charter 5
- IDEA 13》》》14破解
- C++中指针和引用的选择
- HTTP POST请求的Apache Rewrite规则设置
- Time_wait问题小结
- python学习之字符串(下)
- Download and Install Apache Zookeeper on Ubuntu
- 博客系统typecho的安装与使用
- 打开RAD Studio XE5提示";displayNotification:内存不够";解决办法
- Scala函数式对象-有理数
- 如何在eclipse 里面调试java.lang包的代码
- netcore 发布 到 windows server IIS
- maven在eclipse上的配置
- [小技巧] gcc attribute error 属性小试
- C++调用SQLServer存储过程
- 2019 CCPC-Wannafly Winter Camp Day5(Div2, onsite)
- mysql 各种存储引擎的特点
- Python列表切片详解([][:][::])