javascript与php地址url解析函数
/*@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}
测试:
var url = "https://user:pass@www.baidu.com:80/a/b/?name=lee&sex=male#id";var ret = parseurl(url)console.log(ret)
输出:
{ scheme: 'https',user: 'user',pass: 'pass',host: 'www.baidu.com',port: '80',path: 'a/b/',query: 'name=lee&sex=male',fragment: 'id' }
二、php:代码(自带):
parse_url()
测试:
<?php$url = "http://user:pass@www.baidu.com:80/a/b?name=lee&sex=male#id";$ret = parse_url($url);var_dump($ret);
输出:
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"}
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。