温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

javascript与php地址url解析函数

发布时间:2020-06-27 11:36:48 来源:网络 阅读:460 作者:Lee_吉 栏目:web开发

一、javascript:

  1. 代码:
    /*
    @desc:url解析函数
    @author <lee> [<complet@163.com>]
    @param url 要查询的url
    @return ret 解析后的对象
    */
    function parseurl(url){
    var reg = /(?:([A-Za-z]+):)?(\/{0,3})?(?:(.*):(.*)@)?([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?/
    var res = reg.exec(url)
    var scheme = (res[1])?res[1]:'http'
    var user = (res[3])?res[3]:''
    var pass = (res[4])?res[4]:''
    var host = (res[5])?res[5]:''
    var port = (res[6])?res[6]:''
    var path = (res[7])?res[7]:''
    var query = (res[8])?res[8]:''
    var fragment = (res[9])?res[9]:''
    var ret = {
        scheme:scheme,
        user:user,
        pass:pass,
        host:host,
        port:port,
        path:path,
        query:query,
        fragment:fragment
    }
    return ret
    }
  2. 测试:
    var url = "https://user:pass@www.baidu.com:80/a/b/?name=lee&sex=male#id";
    var ret = parseurl(url)
    console.log(ret)
  3. 输出:
    { scheme: 'https',
    user: 'user',
    pass: 'pass',
    host: 'www.baidu.com',
    port: '80',
    path: 'a/b/',
    query: 'name=lee&sex=male',
    fragment: 'id' }

    二、php:

  4. 代码(自带):
    parse_url()
  5. 测试:
    <?php
    $url = "http://user:pass@www.baidu.com:80/a/b?name=lee&sex=male#id";
    $ret = parse_url($url);
    var_dump($ret);
  6. 输出:
    array(8) {
    ["scheme"]=>
    string(4) "http"
    ["host"]=>
    string(13) "www.baidu.com"
    ["port"]=>
    int(80)
    ["user"]=>
    string(4) "user"
    ["pass"]=>
    string(4) "pass"
    ["path"]=>
    string(4) "/a/b"
    ["query"]=>
    string(17) "name=lee&sex=male"
    ["fragment"]=>
    string(2) "id"
    }
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI