1.parse_url()解析URL函数(本函数不能用于相对 URL。)

array parse_url ( string $url ):本函数解析一个 URL 并返回一个关联数组,包含在 URL 中出现的各种组成部分。

本函数不是用来验证给定 URL 的合法性的,只是将其分解为下面列出的部分。不完整的 URL 也被接受,parse_url() 会尝试尽量正确地将其解析。对严重不合格的 URL,parse_url() 可能会返回 FALSE 并发出 E_WARNING。否则会返回一个关联数组,其组成部分为(至少有一个):

scheme - 如 http

  host

  port

  user

  pass

  path

  query - 在问号 ? 之后

  fragment - 在散列符号 # 之后

例如:

<?php

  $url = 'http://username:password@hostname/path?arg=value#anchor';

  print_r(parse_url($url));

  ?>

  以上例程会输出:

  Array

  (

  [scheme] => http

  [host] => hostname

  [user] => username

  [pass] => password

  [path] => /path

  [query] => arg=value

  [fragment] => anchor

  )

2.javascript版本的parse_url函数

在很多时候我们需要通过javascript在页面中获取GET方式传递的各个参数,很可惜javascript没有源生的支持。在PHP中可以通过parse_url函数来获取一个URL中所包含的各个参数及其他信息(如上)。

<pre lang="javascript">
/*
@param String string URL
* @return Object oRs
* e.g. input:
'http://so.56.com/index?type=video&key=aaa'
* ouput: {'type':video, 'key':'aaa'}
*/
function parse_str(string){
var a = [];  
var oRs = {};
var query = string.substr(string.indexOf('?')+1);
var tmp = query.split('&');
var k;
for(var i=0;i<tmp.length;i++){
   a = tmp[i].split('=');
   oRs[a[0]] = a[1];
}
return oRs;
}
</pre>

欠缺的地方就是单纯的字符串解析,没有获取协议、端口、域名、锚点等信息

下面再看一下比较完整的版本:
<pre lang="javascript">
// This function creates a
new anchor element and uses location
// properties (inherent) to get the
desired URL data. Some String
// operations are used (to normalize results
across browsers).

function parseURL(url) {
    var a = document.createElement('a');
    a.href = url;
    return {     
source: url,
protocol: a.protocol.replace(':',''),
host: a.hostname,
port: a.port,
query: a.search,
params: (function(){
            var ret = {},
                seg = a.search.replace(/^\?/,'').split('&'),
                len = seg.length, i = 0, s;
            for (;i<len;i++) {
                if (!seg[i]) { continue; }
                s = seg[i].split('=');
                ret[s[0]] = s[1];
            }
            return ret;   
})(),
        file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
        hash: a.hash.replace('#',''),
        path: a.pathname.replace(/^([^\/])/,'/$1'),
        relative: (a.href.match(/tp:\/\/[^\/]+(.+)/) || [,''])[1],
        segments: a.pathname.replace(/^\//,'').split('/') 
};
}
</pre>
比较巧妙的是利用了A标签的DOM属性来获取更多的信息。不过,在document.location对象中包含了所有的信息,只是用这种方法只能获取document.location的信息,不具有更好的通用性。
用法:

<pre lang="javascript">
var myURL = parseURL('http://zhys9.com:8080/blog/index.php?id=255&m=hello#top');
myURL.file;     // = 'index.php'
myURL.hash;     // = 'top'
myURL.host;     // = 'zhys9.com'
myURL.query;    // = '?id=255&m=hello'
myURL.params;   // = Object = { id: 255, m: hello }
myURL.path;     // = '/blog/index.php'
myURL.segments; // = Array = ['dir', 'index.php']
myURL.port;     // = '8080'
myURL.protocol; // = 'http'
myURL.source;   // = 'http://zhys9.com:8080/blog/index.php?id=255&m=hello#top'
</pre>
比较完整的这个版本的代码取自:http://james.padolsey.com/javascript/parsing-urls-with-the-dom/

转载于:https://www.cnblogs.com/peng14/archive/2012/08/27/2658891.html

php,javascript获取传递各参数的用法相关推荐

  1. 在执行方法和Web资源中获取传递过来参数的值

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复228或者20161026可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  2. javascript获取网页URL地址及参数等

    2019独角兽企业重金招聘Python工程师标准>>> 用javascript获取url网址信息 Java代码 <script type="text/javascri ...

  3. javascript/jquery获取地址栏url参数的方法

    本篇文章主要是对javascript/jquery获取地址栏url参数的方法进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助. 使用jquery获取url以及使用jquery获取url参数是我 ...

  4. Javascript获取URL地址的参数

    什么是URL地址的参数 在网页访问的时候,我们会通过url地址来传递参数. 例如,url地址类似: http://www.pingbuwang.com/index.html?a=12&b=he ...

  5. Javascript获取页面、屏幕尺寸大小参数

    Javascript获取获取屏幕.浏览器窗口 ,浏览器,网页高度.宽度的大小 网页可见区域宽:document.body.clientWidth 网页可见区域高:document.body.clien ...

  6. php 正则替换url参数,JavaScript正则获取地址栏中参数的方法分享

    这篇文章主要介绍了JavaScript正则获取地址栏中参数的方法,涉及javascript基于正则的字符串截取操作相关实现技巧,需要的朋友可以参考下 本文实例讲述了JavaScript正则获取地址栏中 ...

  7. c# 后台传到前台乱码_ASP.NET关于前台脚本传递中文参数,后台获取乱码问题(乱码为方框,黑色方框等。。)...

    随笔,很菜的笔记 关于ASP.NET关于前台脚本传递中文参数,后台获取乱码问题(乱码为方框,黑色方框等..)这种乱码问题,其实有很多解决方案 一般的只要在脚本的参数钱加上escape或者encodeU ...

  8. JavaScript—获取参数(23)

    1.隐式创建 html 标签 <input type="hidden" name="tc_id" value="{{tc_id}}"& ...

  9. JavaScript获取地址栏中的链接参数

    2019独角兽企业重金招聘Python工程师标准>>> JavaScript获取地址栏中的链接参数 <script type="text/javascript&quo ...

  10. JavaScript获取Url地址中的指定参数

    JavaScript获取Url地址中的指定参数 var url = "https://codemank23.com?username=kkk&scope=1";if (ur ...

最新文章

  1. Nature方法 | 三代长读长宏基因组组装软件metaFlye
  2. ubuntu安装KVM
  3. (转载)(c#)数据结构与算法分析 --数组、向量和表
  4. Winform中实现连接Mysql8使用mysqldump实现备份表的数据
  5. Oracle10g中OEM相关问题
  6. 高速信号传输约翰逊 pdf_高速数字电路仿真设计与测试技术发展趋势综述 (一)...
  7. leetcode - 279. 完全平方数
  8. 用户管理 之 Linux 用户管理工具介绍
  9. 谈谈我的微软特约稿:《SQL Server 2014 新特性:IO资源调控》
  10. java linux路径带括号,java执行linux命令 括号
  11. dw怎么在框架中加入网页_Dreamweaver如何用框架建立网站
  12. 百度超级链联合超级账本:区块链技术如何提升金融行业互信与安全
  13. 使用mac电脑生成 icns图标
  14. 「需求广场」需求词更新明细(九)
  15. 【抽样调查】CH3 分层随机抽样
  16. MOS管符号箭头指向问题
  17. 湖北二师计算机学院教授,湖北第二师范学院计算机学院谢莎老师
  18. 使用vue实现日程安排表
  19. c++中的sort函数
  20. 在ListView中实现button功能

热门文章

  1. 呆瓜半小时入门python数据分析_金融和生物信息学多个实战案例
  2. Somer’s D(Somers’ Delta)-顺序变量相关性分析方法
  3. php getter,对象访问器 getter和setter
  4. 电脑取消撤销快捷键是什么_必须掌握的十个电脑使用技巧
  5. 极客大学架构师训练营 大数据平台、Sqoop、Canal、Flume、物联网平台 第27课 听课总结
  6. 著名线性代数教授 85岁麻省理工学院教授,给2020本科生教授《线性代数入门》
  7. python tkinter listbox控件 简书_python tkinter模块的控件操作(1)
  8. 为什么年龄大了近视还增加_都是做近视手术,为什么价格区别这么大?
  9. 凸优化第五章对偶 5.9广义不等式
  10. CS231n李飞飞计算机视觉 神经网络训练细节part1下