几种js获取url及参数, 并分析url的任意部分

 

 

1.获取URL
获取url方法,直接用location就可以了,window.location或window.loation.href也可以。

  1. <script language="javascript"> 
  2. var t1=location
  3. var t2=window.location
  4. var t3=window.location.href; 
  5. document.write("location="+t1+"<br />"+"window.location="+t2+"<br />"+"window.location.href="+t3); 
  6. </script> 

2.分析URL
运用location获取的url属性为object,要对其进行字符串" title="字符串">字符串的分析操作,需要先将其转换为字符串" title="字符串">字符串。

  1. <script language="javascript" type="text/javascript"> 
  2. var t1=location
  3. var t2=window.location
  4. var t3=window.location.href; 
  5. document.write("location型为: "+typeof(t1)+"<br />"+"window.location型为: "+typeof(t2)+"<br />"+"window.location.href型为: "+typeof(t3)); 
  6. </script> 

location进行处理,首先将其转换为字符串" title="字符串">字符串,用函数toString(),URL.toString();

  1. <script language="javascript" type="text/javascript"> 
  2. var t1=location
  3. var URL=t1.toString(); 
  4. document.write("location型为: "+typeof(t1)+"<br />"+"URL型为: "+typeof(URL)); 
  5. </script> 

在URL中查找需要的内容,比如我我们需要查找id的值,根据页面的URL可以看出id=后面就是,进行如下查找

  1. <script language="javascript" type="text/javascript"> 
  2. window.location.href="http://http://guokai2009.blog.hexun.com/default.xasp?id=70"; 
  3. var t1=location
  4. var URL=t1.toString(); 
  5. document.write("location型为: "+typeof(t1)+"<br />"+"URL型为: "+typeof(URL)); 
  6. if(URL.indexOf("id")==-1){ 
  7. alert("there is no id!"); 
  8. }else{ 
  9. var id=URL.split("id="); 
  10. alert(id[1]); 
  11. </script> 

获取URL里的文件夹名:

  1. <script language="javascript" type="text/javascript"> 
  2. var folder=window.location.pathname; 
  3. var f=new Array(); 
  4. f=folder.split("/"); 
  5. alert("文件地址为:"+f[1]); 
  6. </script> 

另附一些URL参数

完整的URL由这几个部分构成:
scheme://host:port/path?query#fragment

scheme = 通信协议 (常用的http,ftp,maito等)
host = 主机 (域名或IP)
port = 端口号
path = 路径

query = 查询
可选,用于给动态网页(如使用CGI、ISAPI、PHP/JSP/ASP/ASP.NET等技术制作的网页)传递参数,可有参数,用”&”符号隔开,每个参数的名和值用”=”符号隔开。

fragment = 信息片断
字符串" title="字符串">字符串,用于指定网络资源中的片断。例如一个网页中有个名词解释,可使用fragment直接定位到某一名词解释。(也称为锚点.)

对于这样一个URL
http://hexun.com.com:80/seo/?ver=1.0&id=6#imhere

我们可以用javascript获得其中的各个部分
1, window.location.href
整个URl字符串" title="字符串">字符串(在浏览器中就是完整地址栏" title="地址栏">地址栏)

2,window.location.protocol
URL 的协议部分
本例返回值" title="返回值">返回值:http:

3,window.location.host
URL 的主机部分
本例返回值" title="返回值">返回值:hexun.com

4,window.location.port
URL 的端口部分
如果采用默认的80端口(update:即使添加了:80),那么返回值" title="返回值">返回值并不是默认的80而是空字符
本例返回值" title="返回值">返回值:”"

5,window.location.pathname
URL 的路径部分(就是文件地址)
本例返回值" title="返回值">返回值:/seo/

6,window.location.search
查询(参数)部分
除了给动态言赋值以外,我们同样可以给静态页面,并使用javascript来获得相信应的参数值
本例返回值" title="返回值">返回值:?ver=1.0&id=6

7,window.location.hash
锚点
本例返回值" title="返回值">返回值:#imhere

最后介绍一个郭恺刚刚使用的 这个能让你获取任何一部分 

  1. <script language=javascript> 
  2. nction" title="function">function lename" title="filename">filename() { 
  3.     var a= document.location.href; 
  4.     var n1=a.lastIndexOf('/')+1    
  5.     var n2=a.lastIndexOf('_d.html') 
  6.     a=a.substring(n1,n2) 
  7.     alert(a);  

  8. lename" title="filename">filename() 
  9. </script> 

将取出当前地址文件名字,不带后缀

//a.lastIndexOf(\'/\') 从右向左取出第一个“/”的位置,也可以写成a.lastIndexOf(\'/\',0)第二个参数0,表示从左端0位置算起。第二个参数不写默认为0

//另外一个函数就是indexOf(\'/\',0),是从左向右查找。 第二个参数0,表示从左端0位置算起

PHP数据类型分为:标量数据类型,复合数据类型,特殊数据类型

数据类型分为:标量数据类型,复合数据类型,特殊数据类型

1.标量数据类型:是数据结构中最基本单元,只能储存一个数据,包括boolean,string,integer,float

1.1string类型:

定义字符串与三种方式:单引号(‘)、双引号(“)、界定符(<<<)单引号和双引号是常使用定义方式,区别是双引号中包含的变量会自动被替换成实际数值,而单引号包含的变量则按普通字符串输出。

<?php

$i="welcome to network1024";

echo '$i';   //将输出$i

echo "$i";   //输出welcome to network1024

?>

 

转义字符:


序列                        含义

\n                            换行

\r                             回车

\t                             水平制表符

\\                             反斜线\

\$                            符号$

\’                             符号’

\”                             符号”

\[0-7]{1,3}               此正则表达式序列匹配一个用八进制符号表示的符号

\x[0-9A-Fa-f]{1-2}   此正则表达式序列匹配一个用十六进制符号表示的符号

注意:\n和\r在windows系统下没区别,都可当回车符;Linux下\n表示光标回到行首,仍在本行,\r则换到下一行,却不会回到行首。

<?php

$i=<<<network1024 //必须另起一行

welcome to network1024

network1024;

echo "$i"; //输出welcome to network1024

?>

1.2integer类型:

32位系统范围:-2147483648~2147483647,如果超出范围发生整数溢出,当float处理,返回float类型;

表示方式:十进制:123;八进制:0123;十六进制:0x123;

1.3float类型:

32位系统范围:1.7E-308~1.7E+308

表示方式:标准格式:3.141592654;科学计数法试:3141592654E-9

注意:浮点数数值只是一个近似值,所以尽量避免浮点数间比较大小,因为最后的结果往往不准确。

 

2复合数据类型:

包括数组array和对象object

数组类型:是一个数据集合,可以包括多种数据:标量数据、数组、对象、资源、及PHP中支持的其他语法结构。

数组中每个数据成为一个元素,元素包括索引(键名)和值两部分。元素索引只能有数字或字符串组成。元素值可以是多种数据类型。

数组索引自动编号从0开始

语法格式:$array=(“value1”,”value2”……)或$array[key]=”value”或$array(key1=>value1,key2=value2……)

<?php

$network1024=array(1=>"how",2=>2,'are'=>"you");

echo $network1024[2]; //输出2

echo $network1024[are]; //输出you

?>

声明数组后,数组中的元素个数可以自由更改。只要给数组赋值,数组就会自动增加长度。

 

3特殊类型:

包括空值NULL和资源resource

resource:资源是由专门的函数来建立和使用的,它是一种特殊的数据类型,并由程序员分配。在使用资源时,要及时释放不需要的资源。如果忘记释放资源,系统自动启动垃圾回收机制,避免内存消耗殆尽。

NULL:表示变量没有值。NULL不区分大小写,null和NULL都是一样。

为NULL的情况:

被赋为null;

尚未被赋值;

通过函数unset()而被销毁。

 

4数据类型转换:

(type)value

类型关键字                  类型转换                      类型关键字                  类型转换

(int),(integer)                 转换成整形                  (array)                          转换成数组

(float),(double),(real)      转换成浮点型               (object)                         转换成对象

(bool),(boolean)             转换成浮点型               (string)                         转换成浮点型

注意:

转换为boolean:null、0、未赋值的变量或数组会转换为false,其他为true

转化为integer:boolean:false为0,true为1

              float:小数部分被舍去

              string:以数字开头则截取到非数字位,否则输出0

 

通过函数bool settpye(mixed var , string type)

var为指定变量;type为要转换的类型boolean/float/integer/string/array/null/object

settype会改变变量自身类型

 

MySQL日期时间类型使用总结

MySQL:如何获得 MySQL 毫秒、微秒
MySQL:Grant 语法详解(MySQL 5.X)

MySQL:MySQL日期数据类型、MySQL时间类型使用总结
MySQL 日期类型:日期格式、所占存储空间、日期范围 比较。
日期类型        存储空间       日期格式                 日期范围
------------ ---------   --------------------- -----------------------------------------
datetime       8 bytes   YYYY-MM-DD HH:MM:SS   1000-01-01 00:00:00 ~ 9999-12-31 23:59:59
timestamp      4 bytes   YYYY-MM-DD HH:MM:SS   1970-01-01 00:00:01 ~ 2038
date           3 bytes   YYYY-MM-DD            1000-01-01          ~ 9999-12-31
year           1 bytes   YYYY                  1901                ~ 2155

在 MySQL 中创建表时,对照上面的表格,很容易就能选择到合适自己的数据类型。不过到底是选择 datetime 还是 timestamp,可

能会有点犯难。这两个日期时间类型各有优点:datetime 的日期范围比较大;timestamp 所占存储空间比较小,只是 datetime 的

一半。

另外,timestamp 类型的列还有个特性:默认情况下,在 insert, update 数据时,timestamp 列会自动以当前时间

(CURRENT_TIMESTAMP)填充/更新。“自动”的意思就是,你不去管它,MySQL 会替你去处理。

一般情况下,我倾向于使用 datetime 日期类型。

MySQL 时间类型:时间格式、所占存储空间、时间范围。
时间类型        存储空间      时间格式                 时间范围
------------ ---------   --------------------- -----------------------------------------
time           3 bytes   HH:MM:SS              -838:59:59          ~ 838:59:59

time 时间范围居然有这么大的范围,特别是 time 可以取负值,有点奇怪。后来,看了 MySQL 手册才知道这是为了满足两个日期时

间相减才这样设计的。

select timediff('2000:01:31 23:59:59', '2000:01:01 00:00:00'); -- 743:59:59
select timediff('2000:01:01 00:00:00', '2000:01:31 23:59:59'); -- -743:59:59
select timediff('23:59:59', '12:00:00');                        -- 11:59:59

注意,timediff 的两个参数只能是 datetime/timestamp, time 类型的,并且这两个参数类型要相同。即:datetime/timestamp 和

datetime/timestamp 比较;time 和 time 相比较。

虽然 MySQL 中的日期时间类型比较丰富,但遗憾的是,目前(2008-08-08)这些日期时间类型只能支持到秒级别,不支持毫秒、微

秒。也没有产生毫秒的函数。