How do I apply URL normalization rules in PHP?

前端 未结 1 736
鱼传尺愫
鱼传尺愫 2020-12-03 15:13

Is there a pre-existing function or class for URL normalization in PHP?

Specifically, following the semantic preserving normalization rules laid out in this wikipedia

相关标签:
1条回答
  • 2020-12-03 16:10

    The Pear Net_URL2 library looks like it'll do at least part of what you want. It'll remove dot segments, fix capitalization and get rid of the default port:

    include("Net/URL2.php");
    $url = new Net_URL2('HTTP://example.com:80/a/../b/c');
    print $url->getNormalizedURL();
    

    emits:

    http://example.com/b/c
    

    I doubt there's a general purpose mechanism for adding trailing slashes to directories because you need a way to map urls to directories which is challenging to do in a generic way. But it's close.

    References:

    • http://pear.php.net/package/Net_URL2
    • http://pear.php.net/package/Net_URL2/docs/latest/Net_URL2/Net_URL2.html
    0 讨论(0)
提交回复
热议问题