php parse_url 反向 -- 解析后的 url
有没有办法从解析的 url 中反转 url?
$url = 'http://www.domain.com/dir/index.php?query=blabla#more_bla';
$parse = parse_url($url);
print_r($parse);
/*
array(
'scheme'=>'http://',
etc....
)
*/
$revere = reverse_url($parse); // probably does not exist but u get the point
echo $reverse;
//outputs:// "http://www.domain.com/dir/index.php?query=blabla#more_bla"
或者,如果有一种方法可以验证缺少部分推荐网址的网址,例如
www.mydomain.com
mydomain.com
应该全部返回 http://www.mydomain.com
或使用正确的子域
Is there a way to reverse the url from a parsed url?
$url = 'http://www.domain.com/dir/index.php?query=blabla#more_bla';
$parse = parse_url($url);
print_r($parse);
/*
array(
'scheme'=>'http://',
etc....
)
*/
$revere = reverse_url($parse); // probably does not exist but u get the point
echo $reverse;
//outputs:// "http://www.domain.com/dir/index.php?query=blabla#more_bla"
Or if there is a way validate a url that is missing part of its recommended urls e.g
www.mydomain.com
mydomain.com
should all returnhttp://www.mydomain.com
or with correct sub domain
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
这是我用来分解和重建 URL 的两个函数:
These are the two functions I use for decomposing and rebuilding URLs:
您应该能够执行
以下操作注意: http_build_url 仅可通过安装 pecl_http。
根据文档,它是专门为处理
parse_url
的输出而设计的。这两个函数都处理锚点、查询参数等,因此不存在“$url 上未提及的其他属性”。要在
http://
丢失时添加它,请在解析它之前使用基本检查:You should be able to do
NOTE: http_build_url is only available by installing pecl_http.
According to the docs it's designed specifically to handle the output from
parse_url
. Both functions handle anchors, query params, etc so there are no "other properties not mentioned on the $url".To add
http://
when it's missing, use a basic check before parsing it:这个函数应该可以解决问题:
这是一个简短的测试:
This function should do the trick:
Here is a short test for it:
这个答案是 @BradMace 接受的答案的附录。我最初将其添加为评论,但他建议将其添加为单独的答案,所以就在这里。
使用
pecl_http
提供的http_build_url($parse)
的原始答案适用于扩展版本1.x
- 版本2.x< /code> 及更高版本是面向对象的并且语法发生了变化。
在较新的版本中(在
pecl_http v.3.2.3
上测试),实现应该是:This answer is appendix to accepted answer by @BradMace. I originally added this as a comment but he suggested add this as separate answer so here it is.
Original answer to use
http_build_url($parse)
provided bypecl_http
would work for extension version1.x
- versions2.x
and later are object oriented and syntax changed.In newer version (tested on
pecl_http v.3.2.3
) implementation should be:十年后,使用几十年前的方法:)
考虑到您将永远拥有该计划和;主持人。 (可选)路径、查询和片段偏移:
使用优雅的 sprintf 进行重建:
其中 path 偏移由 空合并运算符 (PHP 7+)。
A decade later using the decades old method :)
Considering you will always have the scheme & host. Optionally, path, query and fragment offsets:
Build back with classy sprintf:
Where path offset is operated by the null coalescing operator (PHP 7+).
另一个实现:
结果应该是:
Another implemention:
The results should be: