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. 【TensorFlow-windows】学习笔记七——生成对抗网络
  2. 谁在告谁?移动专利混战图
  3. Kubernetes-基本介绍/核心功能/相关术语(一)
  4. window添加右键菜单
  5. 关于网络流算法(3)
  6. lily+Solr 原理与配置
  7. 编译原理 --- 递归下降分析器
  8. 梁宁-产品思维30讲-机会判断-点线面体的战略选择
  9. 《动手学深度学习》(PyTorch版)代码注释 - 52 【World2Vec_Learning】
  10. Display 亮度调节
  11. 网络准入控制学习——Chap1
  12. python办公自动化(6)——读取word文档
  13. 戴尔台式机装linux系统,在戴尔(Dell)台式机上安装深度Deepin系统的BIOS设置方法...
  14. Python爬虫教程(一):爬虫
  15. jquery发送Ajax请求预处理和后置处理
  16. 销售订单配置项目说明
  17. 华为OD机试题:工厂流水线调度
  18. JavaGUI:多功能计算器(五)--Swing实现双语数据包+菜单切换(完整源码+EXE下载)
  19. [TC6194]AllWoundUp
  20. 基于单片机的环境监测调节系统设计(#0516)

热门文章

  1. 小米2 android版本更新,小米MIUI再更新,又有2款手机可以用上基于Android 11的MIUI12...
  2. Google cloud 存储 Storage
  3. 自动驾驶的Pipline -- 如何打造自动驾驶的数据闭环?(下)
  4. 算法:转换二叉查找树为最大值加上当前值的数Convert BST to Greater Tree
  5. 算法: 删除链表中的数据Remove Linked List Elements
  6. NumPy库---二元函数
  7. 新闻本身具有数量大、更新快、冗余度高
  8. 简述delete与delete[]的区别
  9. Computing the cost J(θ)----吴恩达机器学习作业
  10. CS231n李飞飞计算机视觉 神经网络训练细节part1下