竹磬网-邵珠庆の日记 生命只有一次,你可以用它来做些更多伟大的事情–Make the world a little better and easier


286月/120

为新站找一些原则

发布在 邵珠庆

1. 这个站好,用的又不爽,我觉得我应该为它改版,就自己做个它的改版站 (质)

2. 这个站好,但东西太少了,不够我爽,我觉得它如果更多会更好,好吧,人肉+蜘蛛出马(量)

3. 这个站好,让我爽了,但没爽够,我觉得我能做个爽够的出来,就做个更爽的站 (质量)

4. A站好,B站好,C站好,我不想一上就要上ABC,好吧,我自己搞个D,包含ABC (整合,简化)

5. 这个站好,但东西太多了,我只需要其中一部份,别的不需要,我就搞个只有这部份的站,只有我需要的东西(细分)

6. 我觉得我需要一个这样的网站,网上没有这类网站,我马上搞一个,立刻,马上 (创造)

原则中的原则,我自己爽了,访客爽了,搜索引擎爽了,广告商爽了

286月/121

QC即英文QUALITY CONTROL的简称,中文意义是品质控制

发布在 邵珠庆

QC即英文QUALITY CONTROL的简称,中文意义是品质控制

QC七大手法由五图,一表,一法组成:

五图:柏拉图、散布图、直方图、管制图、特性要因分析图(鱼骨图)
一表:查检表(甘特图)
一法:层别法

旧七种工具QC旧七大手法指的是:
检查表、层别法、柏拉图、因果图、散布图、直方图、管制图。
从某种意义 上讲,推行QC七大手法的情况,一定程度上表明了公司管理的先进程度。
这些手法的应用之成败,将成为公司升级市场的一个重要方面:几乎所有的OEM客户, 都会把统计技术应用情况作为审核的重要方面,例如TDI、MOTOROLA等。
新七种工具QC新七大手法指的是:
关系图法、KJ法、系统图法、矩阵图法、矩阵数据分析法、PDPC法、网络图法。
相对而言,新七大手法在世界上的推广应用远不如旧七大手法,也从未成为顾客审核的重要方面。

使用新QC七大工具的益处  
1. 迅速掌握重点---即时掌握问题重心,不似无头苍蝇般地找不到重点。
2. 学习重视企划---有效解析问题,透过手法的运用,寻求解决之道。
3. 重视解决过程---重视问题解决的过程,不只是要求成果。
4. 了解重点目标---拥有正确的方向,不会顾此失彼。
5. 全员系统导向---强化全员参与的重要性,进而产生参与感与认同感。

作用
1. 有利于开发智力资源,发挥人的潜能,提高人的素质
2. 有利于预防质量问题和改进质量
3. 有利于实现全员参加管理
4. 有利于改善人与人之间的关系,增强人的团结协作精神
5. 有利于改善和加强管理工作,提高管理水平
6. 有助于提高职工的科学思维能力、组织协调能力、分析与解决问题的能力,从而使职工岗位成才
7. 有利于提高顾客的满意程度。

286月/120

信度与效度

发布在 邵珠庆

信度与效度是语言测试的永恒主题,信度与效度孰重孰轻,也是现代语言测试学家一直争论不休的话题

在教育研究中,信度与效度是很常见的两个概念。但每次看到或听到这两个名词,我的脑袋老反应不过来,看来基础就是不扎实。我重新翻看了几本书,在这里做个简单介绍。

一、信度

所谓的信度,是指使用相同指标或测量工具重复测量相同事物时,得到相同结果的可能性。如果说某个指标或测量工具的信度高,那它提供的测量结果就不会因为指 标、测量工具或测量设计本身的特性而发生变化;反之亦然。根据测量过程中不同的误差来源,可分为再测信度、复本信度和折半信度。

再测信度,是用同一测量工具在不同的时间对同一群受试者前后测量两次,然后计算两次测量分数的相关系数,相关系数越大说明两次测量的一致性越高。相隔的时间不应该太长。

       复本信度,是用两个完全等值的(平行的)复本对同一群受试者进行测试,计算两种复本测量分数的相关系数,相关系数越大说明两个复本构成带来的变异越小。如考试中使用的A、B卷

       折半信度,只用一个测量工具对同一群受试者实施一次测量,但将奇数题和偶数题分开计分,再计算奇数试题和偶数试题分数之间的相关系数。

二、效度

所谓的效度,是指测量工具能够测出其所要测量的特征的正确性程度。效度越高,即表示测量结果越能显示其所要测量的特征。如果说根据某项特征能够区分人、物 或事件,那么说某个测量该特征的测量工具是有效的,就是指它的测量结果能把具有不同特征的人、物或事件进行有效的区分。常用的有变面效度、内容效度和效标 效度。

表面效度是指测量效果和人们头脑中的印象或学术界形成的共识之间的吻和程度,吻合程度高,表面效度就高。

内容效度是指测量在多大程度上涵盖了被测量概念的全部内涵,测量工具代表概念定义的内容越多,内容效度就越高。

效标效度是指测量结果与一些标准之间的一致性程度,这些标准能够精确表示被测概念。

三、信度与效度的关系

  信度是效度的必要条件,但不是充分条件。一个测量工具要有效度必须有信度,没有信度就没有效度;但是有了信度不一定有效度。

信度低,效度不可能高。因为如果测量的数据不准确,也并不能有效地说明所研究的对象。

      信度高,效度未必高。例如,如果我们准确地测量出某人的经济收入,也未必能够说明他的消费水平。 
       效度低,信度很可能高。例如,即是一项研究未能说明社会流动的原因,但它很有可能很精确很可靠地调查各个时期各种类型的人的流动数量。
     效度高,信度也必然高。

266月/120

文件管理&文件分类

发布在 邵珠庆

如果你的电脑里有很多图片,文档以及其他的文件,它们可能会非常杂乱,你找的时候很不方便。所以,为了自己使用电脑的方便,最好按照下面的方法合理整理、分组你的文件。下面的介绍是以 Windows 操作系统为例,不过,这种方法同样适合其他的操作系统:

  1. 了解容易混乱的几个地方 
    首先需要了解系统中最容易变得混乱的几个区域,这样你才能开始有针对地整理。在 Windows 中,通常比较混乱的区域是:

    • 桌面(Desktop)
    • 我的文档(My Documents)
    • 系统中用户的文件夹(X:Documents and SettingsXXX)
    • 个人下载目录(X:Downloads)
  2. 找到并删除你不再需要的文件
    使用电脑时间长了以后,有很多文件是你不会再去使用的,把你确定不再使用的文件删除掉。
  3. 把通用的文件存放在一个大的目录
    例如,使用“我的文档”,或者自己新建一个文件夹,把所有同类的文件和文件夹放在这一个大的文件夹内。这样方便备份和查找。
  4. 创建其他一些目录分类存放文件
    根据自己使用的习惯和要求,创建一些有意义的目录,这些目录分别存放相应分类的文件(夹)。例如,你可以在磁盘根目录或者某一个总的文件夹内,再创建“工作”、“个人”、“朋友”、“家庭”等分类。你也可以按照日期和时间,相关的人、活动事件,文件类型,地点等等分类。只要让目录看起来更容易识别,方便你找到即可。
  5. 创建子目录合理存放文件
    在已经分好类的文件夹中,如果文件还是很多的情况下,要尽量根据文件的属性,创建一些子目录,然后把相关的文件分别存放到子目录中。创建子目录要注意的问题是,不要创建层次很深的目录结构,这样反而会使查找更困难。
  6. 对整理的文件进行排序
    有的时候,你的文件名可能是一些毫无意义的名字,例如,你从网上下载的歌曲名称,有时候会是一些毫无意义的数字。通过排序和重命名,重新整理文件夹中的文件,使他们看起来更整洁,一目了然。
  7. 整理你的快捷方式
    电脑使用时间长了以后,在“桌面”、“开始菜单”和“快速启动”栏里会有很多很乱的快捷方式。这些快捷方式你不可能都需要吧?在“快速启动”栏里只需保留你最常用的几个快捷方式(例如:internet,我的文档,word,excel)。把其他多余的快捷方式从“开始”菜单中拖到桌面,然后,在桌面新建一个文件夹,存放桌面上的所有的快捷方式。打开这个文件夹,删除不需要的快捷方式,只保留常用的。这样,你的桌面和开始菜单看起来或更清爽,反应速度也会更快。
  8. 最重要的一点
    在你下载文件或者新建文件时,不要图方便,都放到了桌面。确保你把它们都放在了有意义的文件夹中,这样才能避免混乱,保持电脑的整洁有序。
如何对电子文件分类?  

电子文件的分类和纸质文件一样,是将具有保存价值的电子文件,按照其自然联系组合成文件的组合体。传统文件分类体现在文件的实体排列上,而电子文件的分类则反映在计算机输出界面的逻辑排列上。

Windows XP的文件管理功能是管理电子文件的实用工具。各单位或各部门文件管理人员可以通过分层次地设置文件夹,使电子文件在计算机存储器中进行科学分类。具体方法是:

1、双击桌面上【我的电脑】或鼠标右击【开始】按钮选择【资源管理器】,便可进入资源管理器界面。单击选择一个存储器,如:“H盘”。在选择存储器时,要预先估计本单位电子文件的递增速度,让该存储器的容量能够满足电子文件递增的需要。同时,存储电子文件的文件夹不能选“C盘”,因为“C盘”容易受到病毒的攻击。

2、单击左上角【文件】按钮,再将鼠标移至【新建】→【文件夹】后单击。然后输入文件夹名,如【文书档案库】。这样建立的【文书档案库】文件夹就专门用于存放文书类电子文件。

3、根据本单位档案分类体系,反复采用上述第2种方法,就能按电子文件的分类层次设置文件夹。例如某单位行政类电子文件按年度、问题分类,其文件夹就可以设置为以下方式:

 

4、类别设置好后,将需要归档保存的电子文件按类存放入相应的文件夹中。

5、文件夹或文件中的文件可以按照名称[N]、类型[T]、大小[Z]、修改日期[D]、自动排列[A]等方式排列。如果按名称排列则是按起始汉字的汉语拼音字母顺序排列。如果分类中刻意讲究一种排列方式,如机关各部门的文件夹必须按“党委办公室”、“行政办公室”、“人事处”、“计划处”……,则可在汉字前面可加序号或英文字母,即“1-党委办公室”、“2-行政办公室”、“3-人事处”、“4-计划处”……。

6、分类可以通过调整文件夹而调整。也可以通过增加或删除文件夹而增加或删除文件类。

226月/1214

教你如何简单获取新浪微博短地址接口

发布在 邵珠庆

 

短地址(也称短链接、缩短地址等)方面,在twitter发展之后就接着发展了起来,而且很多互联网网站都使用了短地址,国内国外都很多,但稳定和可靠性,还是国内的比较靠谱些,不怕没墙,国外几家已经悲剧了,所以如果项目中用到短地址,个人还是建议使用新浪或者其他国内的短链接服务。

新浪微博短链接API是开放的,而腾讯微博的短地址API没有开放,本想着通过不一样的路径获取腾讯微博的API的,最后还是以失败收场。新浪微博短地址API是不需要用户登录的,所以直接可以调用,而且速度很快,下面的代码是从网站找来的,用的是CURL POST的方法,可供参考。

新浪微博短链接API文档在旧版开发文档中,新版中暂未加入:http://open.weibo.com/wiki/Short_url/shorten

1 function shortenSinaUrl($long_url){
2 $apiKey='1234567890';//这里是你申请的应用的API KEY,随便写个应用名就会自动分配给你
3 $apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
4 $curlObj = curl_init();
5 curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
6 curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
7 curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
8 curl_setopt($curlObj, CURLOPT_HEADER, 0);
9 curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
10 $response = curl_exec($curlObj);
11 curl_close($curlObj);
12 $json = json_decode($response);
13 return $json[0]->url_short;
14 }
15  
16 function expandSinaUrl($short_url){
17 $apiKey='1234567890';//要修改这里的key再测试哦
18 $apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
19 $curlObj = curl_init();
20 curl_setopt($curlObj, CURLOPT_URL, $apiUrl);
21 curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1);
22 curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0);
23 curl_setopt($curlObj, CURLOPT_HEADER, 0);
24 curl_setopt($curlObj, CURLOPT_HTTPHEADER, array('Content-type:application/json'));
25 $response = curl_exec($curlObj);
26 curl_close($curlObj);
27 $json = json_decode($response);
28 return $json[0]->url_long;
29 }

参照新浪微博的开发文档,其推荐的是使用get的方法获取。那代码就更简单了

1 function shorturl($long_url){
2     $apiKey='1234567890';//要修改这里的key再测试哦
3     $apiUrl='http://api.t.sina.com.cn/short_url/shorten.json?source='.$apiKey.'&url_long='.$long_url;
4     $response = file_get_contents($apiUrl);
5     $json = json_decode($response);
6     return $json[0]->url_short;
7 }
8  
9 function expandurl($short_url){
10     $apiKey='1234567890';//要修改这里的key再测试哦
11     $apiUrl='http://api.t.sina.com.cn/short_url/expand.json?source='.$apiKey.'&url_short='.$short_url;
12  
13     $response = file_get_contents($apiUrl);
14     $json = json_decode($response);
15     return $json[0]->url_long;
16 }

OK,是不是更简单了?

大家在调试上面的代码是需要填写自己的API key哦,不然肯定获取不到的。

特别提示:短地址服务现在仅对已经认证的APP KEY提供服务,刚申请的APP KEY会被提示无权限。大家可以使用209678993和3818214747两个KEY做测试,这2个KEY来历不明,不建议用于生产。

写了个调试的文档,大家可以测试下:

长转短:http://jucelin.com/lab/short.php?type=1&url=http://jucelin.com

短转长:http://jucelin.com/lab/short.php?type=2&url=http://t.cn/S4bLBm

就2个参数,type:1表示长转短,2表示短转长,后面的URL就是目标域名了,因为比较懒,就没有写错误判断,新浪微博短地址不支持短地址再转短地址的,逻辑上也应该这样控制。(不信你可以试试)。

关于新浪微博短地址接口的更详细说明可以参考《新浪微博短地址接口》。

216月/120

js常用资料

发布在 邵珠庆

    • 事件源对象
      event.srcElement.tagName
      event.srcElement.type
    • 捕获释放
      event.srcElement.setCapture(); 
      event.srcElement.releaseCapture(); 
    • 事件按键
      event.keyCode
      event.shiftKey
      event.altKey
      event.ctrlKey
    • 事件返回值
      event.returnValue
    • 鼠标位置
      event.x
      event.y
    • 窗体活动元素
      document.activeElement
    • 绑定事件
      document.captureEvents(Event.KEYDOWN);
    • 访问窗体元素
      document.all("txt").focus();
      document.all("txt").select();
    • 窗体命令
      document.execCommand
    • 窗体COOKIE
      document.cookie
    • 菜单事件
      document.oncontextmenu
    • 创建元素
      document.createElement("SPAN"); 
    • 根据鼠标获得元素:
      document.elementFromPoint(event.x,event.y).tagName=="TD
      document.elementFromPoint(event.x,event.y).appendChild(ms) 
    • 窗体图片
      document.images[索引]
    • 窗体事件绑定
      document.onmousedown=scrollwindow;
    • 元素
      document.窗体.elements[索引]
    • 对象绑定事件
      document.all.xxx.detachEvent('onclick',a);
    • 插件数目
      navigator.plugins
    • 取变量类型
      typeof($js_libpath) == "undefined"
    • 下拉框
      下拉框.options[索引]
      下拉框.options.length
    • 查找对象
      document.getElementsByName("r1");
      document.getElementById(id);
    • 定时
      timer=setInterval('scrollwindow()',delay);
      clearInterval(timer);
    • UNCODE编码
      escape() ,unescape
    • 父对象
      obj.parentElement(dhtml)
      obj.parentNode(dom)
    • 交换表的行
      TableID.moveRow(2,1)
    • 替换CSS
      document.all.csss.href = "a.css";
    • 并排显示
      display:inline
    • 隐藏焦点
      hidefocus=true
    • 根据宽度换行
      style="word-break:break-all"
    • 自动刷新
      <meta HTTP-EQUIV="refresh" CONTENT="8;URL=http://c98.yeah.net">
    • 简单邮件
      <a  href="mailto:aaa@bbb.com?subject=ccc&body=xxxyyy"> 
    • 快速转到位置
      obj.scrollIntoView(true)

    • <a name="first">
      <a href="#first">anchors</a>
    • 网页传递参数
      location.search();
    • 可编辑
      obj.contenteditable=true
    • 执行菜单命令
      obj.execCommand
    • 双字节字符
      /[^/x00-/xff]/
      汉字
      /[/u4e00-/u9fa5]/
    • 让英文字符串超出表格宽度自动换行
      word-wrap: break-word; word-break: break-all;
    • 透明背景
      <IFRAME src="1.htm" width=300 height=180 allowtransparency></iframe>
    • 获得style内容
      obj.style.cssText
    • HTML标签
      document.documentElement.innerHTML
    • 第一个style标签
      document.styleSheets[0]
    • style标签里的第一个样式
      document.styleSheets[0].rules[0]
    • 防止点击空链接时,页面往往重置到页首端。
      <a href="javascript:function()">word</a>
    • 上一网页源
      asp:
      request.servervariables("HTTP_REFERER")
      javascript:
      document.referrer
    • 释放内存
      CollectGarbage();
    • 禁止右键
      document.oncontextmenu = function() { return false;}
    • 禁止保存
      <noscript><iframe src="*.htm"></iframe></noscript>
    • 禁止选取<body oncontextmenu="return false" ondragstart="return false" onselectstart ="return false" onselect="document.selection.empty()" oncopy="document.selection.empty()" onbeforecopy="return false"onmouseup="document.selection.empty()> 
    • 禁止粘贴
      <input type=text onpaste="return false">
    • 地址栏图标
      <link rel="Shortcut Icon" href="favicon.ico">
      favicon.ico 名字最好不变16*16的16色,放虚拟目录根目录下
    • 收藏栏图标
      <link rel="Bookmark" href="favicon.ico">
    • 查看源码
      <input type=button value=查看网页源代码 onclick="window.location = 'view-source:'+ 'http://www.csdn.net/'">
    • 关闭输入法
      <input style="ime-mode:disabled">
    • 自动全选
      <input type=text name=text1 value="123" onfocus="this.select()">
    • ENTER键可以让光标移到下一个输入框
      <input onkeydown="if(event.keyCode==13)event.keyCode=9">
    • 文本框的默认值
      <input type=text value="123" onfocus="alert(this.defaultValue)">
    • title换行
      obj.title = "123 sdfs "
    • 获得时间所代表的微秒
      var n1 = new Date("2004-10-10".replace(/-/g, "//")).getTime()
    • 窗口是否关闭
      win.closed
    • checkbox扁平
      <input type=checkbox style="position: absolute; clip:rect(5px 15px 15px 5px)"><br>
    • 获取选中内容
      document.selection.createRange().duplicate().text
    • 自动完成功能
      <input  type=text  autocomplete=on>打开该功能 
      <input  type=text  autocomplete=off>关闭该功能   
    • 窗口最大化
      <body onload="window.resizeTo(window.screen.width - 4,window.screen.height-50);window.moveTo(-4,-4)">
    • 无关闭按钮IE
      window.open("aa.htm", "meizz", "fullscreen=7");
    • 统一编码/解码
      alert(decodeURIComponent(encodeURIComponent("http://你好.com?as= hehe")))
      encodeURIComponent对":"、"/"、";" 和 "?"也编码
    • 表格行指示
      <tr onmouseover="this.bgColor='#f0f0f0'" onmouseout="this.bgColor='#ffffff'">


      //各种尺寸

      s  +=  "/r/n网页可见区域宽:"+  document.body.clientWidth;  
      s  +=  "/r/n网页可见区域高:"+  document.body.clientHeight;  
      s  +=  "/r/n网页可见区域高:"+  document.body.offsetWeight  +"  (包括边线的宽)";  
      s  +=  "/r/n网页可见区域高:"+  document.body.offsetHeight  +"  (包括边线的宽)";  
      s  +=  "/r/n网页正文全文宽:"+  document.body.scrollWidth;  
      s  +=  "/r/n网页正文全文高:"+  document.body.scrollHeight;  
      s  +=  "/r/n网页被卷去的高:"+  document.body.scrollTop;  
      s  +=  "/r/n网页被卷去的左:"+  document.body.scrollLeft;  
      s  +=  "/r/n网页正文部分上:"+  window.screenTop;  
      s  +=  "/r/n网页正文部分左:"+  window.screenLeft;  
      s  +=  "/r/n屏幕分辨率的高:"+  window.screen.height;  
      s  +=  "/r/n屏幕分辨率的宽:"+  window.screen.width;  
      s  +=  "/r/n屏幕可用工作区高度:"+  window.screen.availHeight;  
      s  +=  "/r/n屏幕可用工作区宽度:"+  window.screen.availWidth;  

    //过滤数字

     <input type=text onkeypress="return event.keyCode>=48&&event.keyCode<=57||(this.value.indexOf('.')<0?event.keyCode==46:false)" onpaste="return !clipboardData.getData('text').match(//D/)" ondragenter="return false">

    //特殊用途

     <input type=button value=导入收藏夹 onclick="window.external.ImportExportFavorites(true,'http://localhost');">
    <input type=button value=导出收藏夹 onclick="window.external.ImportExportFavorites(false,'http://localhost');">
    <input type=button value=整理收藏夹 onclick="window.external.ShowBrowserUI('OrganizeFavorites', null)">
    <input type=button value=语言设置   onclick="window.external.ShowBrowserUI('LanguageDialog', null)">
    <input type=button value=加入收藏夹 onclick="window.external.AddFavorite('http://www.google.com/', 'google')">
    <input type=button value=加入到频道 onclick="window.external.addChannel('http://www.google.com/')">
    <input type=button value=加入到频道 onclick="window.external.showBrowserUI('PrivacySettings',null)"

    //不缓存

     <META HTTP-EQUIV="pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
    <META HTTP-EQUIV="expires" CONTENT="0"

    //正则匹配

    匹配中文字符的正则表达式: [/u4e00-/u9fa5]
    匹配双字节字符(包括汉字在内):[^/x00-/xff]
    匹配空行的正则表达式:/n[/s| ]*/r
    匹配HTML标记的正则表达式:/<(.*)>.*<///1>|<(.*) //>/ 
    匹配首尾空格的正则表达式:(^/s*)|(/s*$)(像vbscript那样的trim函数)
    匹配Email地址的正则表达式:/w+([-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*
    匹配网址URL的正则表达式:http://([/w-]+/.)+[/w-]+(/[/w- ./?%&=]*)?
    以下是例子:
    利用正则表达式限制网页表单里的文本框输入内容:
    用正则表达式限制只能输入中文:onkeyup="value=value.replace(/[^/u4E00-/u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/u4E00-/u9FA5]/g,''))"
    1.用正则表达式限制只能输入全角字符: onkeyup="value=value.replace(/[^/uFF00-/uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/uFF00-/uFFFF]/g,''))"
    2.用正则表达式限制只能输入数字:onkeyup="value=value.replace(/[^/d]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"
    3.用正则表达式限制只能输入数字和英文:onkeyup="value=value.replace(/[/W]/g,'') "onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^/d]/g,''))"

    //消除图像工具栏

     

     

    //无提示关闭

    function Close()
    {
     var ua=navigator.userAgent
     var ie=navigator.appName=="Microsoft Internet Explorer"?true:false
     if(ie)
     {
          var IEversion=parseFloat(ua.substring(ua.indexOf("MSIE ")+5,ua.indexOf(";",ua.indexOf("MSIE "))))
      if(IEversion< 5.5)
      {
       var str  = '<object id=noTipClose classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11">'
           str += '<param name="Command" value="Close"></object>';
           document.body.insertAdjacentHTML("beforeEnd", str);
           document.all.noTipClose.Click();
      }
          else
      {
           window.opener =null;
           window.close();
          }
       }
     else
     {
      window.close()
       }
    }

    //取得控件得绝对位置(1)

    <script language="javascript"
    function getoffset(e)

     var t=e.offsetTop; 
     var l=e.offsetLeft; 
     while(e=e.offsetParent)
     { 
      t+=e.offsetTop; 
      l+=e.offsetLeft; 
     } 
     var rec = new Array(1);
     rec[0]  = t;
     rec[1] = l;
     return rec

    </script>

    //获得控件的绝对位置(2)

    oRect = obj.getBoundingClientRect();
    oRect.left
    oRect.

    //最小化,最大化,关闭

     

     

     

    //光标停在文字最后

     

    <script language="javascript">
    function cc()
    {
     var e = event.srcElement;
     var r =e.createTextRange();
     r.moveStart('character',e.value.length);
     r.collapse(true);
     r.select();
    }
    </script>
    <input type=text name=text1 value="123" onfocus="cc()">

    //页面进入和退出的特效

    进入页面<meta http-equiv="Page-Enter" content="revealTrans(duration=x, transition=y)">
    推出页面<meta http-equiv="Page-Exit" content="revealTrans(duration=x, transition=y)"
    这个是页面被载入和调出时的一些特效。duration表示特效的持续时间,以秒为单位。transition表示使
    用哪种特效,取值为1-23:
      0 矩形缩小 
      1 矩形扩大 
      2 圆形缩小
      3 圆形扩大 
      4 下到上刷新 
      5 上到下刷新
      6 左到右刷新 
      7 右到左刷新 
      8 竖百叶窗
      9 横百叶窗 
      10 错位横百叶窗 
      11 错位竖百叶窗
      12 点扩散 
      13 左右到中间刷新 
      14 中间到左右刷新
      15 中间到上下
      16 上下到中间 
      17 右下到左上
      18 右上到左下 
      19 左上到右下 
      20 左下到右上
      21 横条 
      22 竖条 
      23 

    //网页是否被检索

     

     

    //打印分页

     

     

    //设置打印

    <object id="factory" style="display:none" viewastext
      classid="clsid:1663ed61-23eb-11d2-b92f-008048fdd814"
      codebase="http://www.meadroid.com/scriptx/ScriptX.cab#Version=5,60,0,360"
    ></object>
    <input type=button value=页面设置 onclick="factory.printing.PageSetup()">
    <input type=button value=打印预览 onclick="factory.printing.Preview()">
     
    <script language=javascript>
    function window.onload()
    {
       // -- advanced features
       factory.printing.SetMarginMeasure(2) // measure margins in inches
       factory.printing.SetPageRange(false, 1, 3) // need pages from 1 to 3
       factory.printing.printer = "HP DeskJet 870C"
       factory.printing.copies = 2
       factory.printing.collate = true
       factory.printing.paperSize = "A4"
       factory.printing.paperSource = "Manual feed"
       // -- basic features
       factory.printing.header = "居左显示&b居中显示&b居右显示页码,第&p页/共&P页"
       factory.printing.footer = "(自定义页脚)"
       factory.printing.portrait = false
       factory.printing.leftMargin = 0.75
       factory.printing.topMargin = 1.5
       factory.printing.rightMargin = 0.75
       factory.printing.bottomMargin = 1.5
    }
    function Print(frame) {
      factory.printing.Print(true, frame) // print with prompt
    }
    </script>
    <input type=button value="打印本页" onclick="factory.printing.Print(false)">
    <input type=button value="页面设置" onclick="factory.printing.PageSetup()">
    <input type=button value="打印预览" onclick="factory.printing.Preview()"><br>
    <a href="http://www.meadroid.com/scriptx/docs/printdoc.htm?static"  target=_blank>具体使用手册,更多信息,点这里</a>
     

    //自带的打印预览

    WebBrowser.ExecWB(1,1) 打开 
    Web.ExecWB(2,1) 关闭现在所有的IE窗口,并打开一个新窗口 
    Web.ExecWB(4,1) 保存网页 
    Web.ExecWB(6,1) 打印 
    Web.ExecWB(7,1) 打印预览 
    Web.ExecWB(8,1) 打印页面设置 
    Web.ExecWB(10,1) 查看页面属性 
    Web.ExecWB(15,1) 好像是撤销,有待确认 
    Web.ExecWB(17,1) 全选 
    Web.ExecWB(22,1) 刷新 
    Web.ExecWB(45,1) 关闭窗体无提示 
    <style media=print> 
    .Noprint{display:none;}<!--用本样式在打印时隐藏非打印项目--> 
    .PageNext{page-break-after: always;}<!--控制分页--> 
    </style> 
    <object  id="WebBrowser"  width=0  height=0  classid="CLSID:8856F961-340A-11D0-A96B-00C04FD705A2">    
    </object>    
     
    <center class="Noprint" >
    <input type=button value=打印 onclick=document.all.WebBrowser.ExecWB(6,1)> 
    <input type=button value=直接打印 onclick=document.all.WebBrowser.ExecWB(6,6)> 
    <input type=button value=页面设置 onclick=document.all.WebBrowser.ExecWB(8,1)> 
    </p> 
    <p> <input type=button value=打印预览 onclick=document.all.WebBrowser.ExecWB(7,1)> 
    </center>

    //去掉打印时的页眉页脚

    <script  language="JavaScript">  
    var HKEY_Root,HKEY_Path,HKEY_Key;
    HKEY_Root="HKEY_CURRENT_USER";
    HKEY_Path="//Software//Microsoft//Internet Explorer//PageSetup//";
    //设置网页打印的页眉页脚为空
    function
     PageSetup_Null()
    {
     try
     {
             var Wsh=new ActiveXObject("WScript.Shell");
      HKEY_Key="header";
      Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
      HKEY_Key="footer";
      Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"");
     }
     catch(e){}
    }
    //设置网页打印的页眉页脚为默认值
    function
      PageSetup_Default()
    {  
     try
     {
      var Wsh=new ActiveXObject("WScript.Shell");
      HKEY_Key="header";
      Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&w&b页码,&p/&P");
      HKEY_Key="footer";
      Wsh.RegWrite(HKEY_Root+HKEY_Path+HKEY_Key,"&u&b&d");
     }
     catch(e){}
    }
    </script>
    <input type="button" value="清空页码" onclick=PageSetup_Null()>
    <input type="button" value="恢复页码" onclick=PageSetup_Default()>

    //浏览器验证

    function checkBrowser()

       this.ver=navigator.appVersion 
       this.dom=document.getElementById?1:0 
       this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom)?1:0; 
       this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom)?1:0; 
       this.ie4=(document.all && !this.dom)?1:0; 
       this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0; 
       this.ns4=(document.layers && !this.dom)?1:0; 
       this.mac=(this.ver.indexOf('Mac') > -1) ?1:0; 
       this.ope=(navigator.userAgent.indexOf('Opera')>-1); 
       this.ie=(this.ie6 || this.ie5 || this.ie4) 
       this.ns=(this.ns4 || this.ns5) 
       this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns5 || this.ns4 || this.mac || this.ope) 
       this.nbw=(!this.bw) 
       return this;
    }

    //计算内容宽和高

    <SCRIPT  language="javascript">  
    function  test(obj)  
    {  
           var  range  =  obj.createTextRange();  
           alert("内容区宽度:  "  +  range.boundingWidth    
                                                     +  "px/r/n内容区高度:  "  +  range.boundingHeight  +  "px");  
                 
    }  
    </SCRIPT>  
    <BODY>  
    <Textarea id="txt" height="150">sdf</textarea><INPUT  type="button"  value="计算内容宽度"  onClick="test(txt)">  
    </BODY>

    //无模式的提示框

     

     

     

     

    //屏蔽按键

     

    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
      <noscript><meta http-equiv="refresh" content="0;url=about:noscript"></noscript>
      <title>屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键</title>
    </head>
    <body>
    <script language="Javascript"><!--
      //屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键
      //Author: meizz(梅花雨) 2002-6-18
    function
     document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠标右键
    function
     window.onhelp(){return false//屏蔽F1帮助
    function
     document.onkeydown()
    {
      if ((window.event.altKey)&&
          ((window.event.keyCode==37)||   //屏蔽 Alt+ 方向键 ←
           (window.event.keyCode==39)))   //屏蔽 Alt+ 方向键 →
      {
         alert("不准你使用ALT+方向键前进或后退网页!");
         event.returnValue=false;
      }
         /* 注:这还不是真正地屏蔽 Alt+ 方向键,
         因为 Alt+ 方向键弹出警告框时,按住 Alt 键不放,
         用鼠标点掉警告框,这种屏蔽方法就失效了。以后若
         有哪位高手有真正屏蔽 Alt 键的方法,请告知。*/

      if ((event.keyCode==8)  ||                 //屏蔽退格删除键
          (event.keyCode==116)||                 //屏蔽 F5 刷新键
          (event.ctrlKey && event.keyCode==82)){ //Ctrl + R
         event.keyCode=0;
         event.returnValue=false;
         }
      if (event.keyCode==122){event.keyCode=0;event.returnValue=false;}  //屏蔽F11
      if (event.ctrlKey && event.keyCode==78) event.returnValue=false;   //屏蔽 Ctrl+n
      if (event.shiftKey && event.keyCode==121)event.returnValue=false;  //屏蔽 shift+F10
      if (window.event.srcElement.tagName == "A" && window.event.shiftKey) 
          window.event.returnValue = false;             //屏蔽 shift 加鼠标左键新开一网页
      if ((window.event.altKey)&&(window.event.keyCode==115))             //屏蔽Alt+F4
      {
          window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");
          return false;
      }
    }
    </script>
    屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键
    </body>
    </html>

    //屏蔽打印
    <style>
    @media print{
    * {display:none}
    }
    </style>

    //移动的图层,拖动

    1.<span style='position:absolute;width:200;height:200;background:red' onmousedown=MouseDown(this) onmousemove=MouseMove() onmouseup=MouseUp()>meizz</span>
    <script language=javascript>
    var Obj;
    function MouseDown(obj)
    {
      Obj=obj;
      Obj.setCapture();
      Obj.l=event.x-Obj.style.pixelLeft;
      Obj.t=event.y-Obj.style.pixelTop;
    }
    function MouseMove()
    {
      if(Obj!=null)
      {
        Obj.style.left = event.x-Obj.l;
        Obj.style.top = event.y-Obj.t;
      }
    }
    function MouseUp()
    {
      if(Obj!=null)
      {
        Obj.releaseCapture();
        Obj=null;
      }
    }
    </script>
    2.
    <div id="myDiv" src="logo.gif" ondrag="doDrag();" onmouseover="this.style.cursor='hand'" style="position:absolute;left=100;top=100;" onmousedown="doMouseDown();">
    <a href="#" onclick="return false"><h1>wlecome</h1></a>
    </div>
    <script language="JavaScript" type="text/javascript">
    var orgMouseX;
    var orgMouseY;
    var orgObjX;
    var orgObjY;
    function doDrag()
    {
    var myObject=document.all.myDiv;

    var x=event.clientX;
    var y=event.clientY;
    myObject.style.left=x-(orgMouseX-orgObjX);
    myObject.style.top=y-(orgMouseY-orgObjY);
     
    }
    function doMouseDown()
    {
    orgMouseX=event.clientX;
    orgMouseY=event.clientY;
    orgObjX=parseInt(document.all.myDiv.style.left);
    orgObjY=parseInt(document.all.myDiv.style.top);
    }

    </script>
     

    //文档状态改变

    <iframe src="a.html" id="f" name="f" scrolling="no" frameborder=0 marginwidth=0 marginheight=0></iframe>
    <script>
    var doc=window.frames["f"].document;
    function s(){
     if (doc.readyState=="complete"){
      document.all.f.style.height=doc.body.scrollHeight
      document.all.f.style.width=doc.body.scrollWidth
     }
    }
    doc.onreadystatechange=s
    </script>

    //刷新后不变的文本框

     

     

    //访问剪贴板

     

     

    //操作COOKIE

    function SetCookie(sName, sValue)
    {
     document.cookie = sName + "=" + escape(sValue) + "; ";
    }
    function GetCookie(sName)
    {
     var aCookie = document.cookie.split("; ");
     for (var i=0; i < aCookie.length; i++)
     {
      
      var aCrumb = aCookie[i].split("=");
      if (sName == aCrumb[0]) 
      return unescape(aCrumb[1]);
     }
     
    }
    function DelCookie(sName)
    {
    document.cookie = sName + "=" + escape(sValue) + "; expires=Fri, 31 Dec 1999 23:59:59 GMT;";
    }

    //setTimeout增加参数

    <script>
    var _st = window.setTimeout;
    window.setTimeout = function(fRef, mDelay) {
     if(typeof fRef == 'function'){
      var argu = Array.prototype.slice.call(arguments,2);
      var f = (function(){ fRef.apply(null, argu); });
      return _st(f, mDelay);
     }
     return _st(fRef,mDelay);
    }
    function test(x){
     alert(x);
    }
    window.setTimeout(test,1000,'fason');
    </script>

    //自定义的apply,call

    Function.prototype.apply = function (obj, argu) {
     if (obj) obj.constructor.prototype._caller = this
     var argus = new Array();
     for (var i=0;i<argu.length;i++)
      argus[i] = "argu[" + i + "]";
     var r;
     eval("r = " + (obj ? ("obj._caller(" + argus.join(",") + ");") : ("this(" + argus.join(",") + ");")));
     return r;
    };
    Function.prototype.call = function (obj) {
     var argu = new Array();
     for (var i=1;i<arguments.length;i++)
      argu[i-1] = arguments[i];
     return this.apply(obj, argu);
    };       

    //下载文件

    function DownURL(strRemoteURL,strLocalURL)
    {
     try
     {
      var xmlHTTP=new ActiveXObject("Microsoft.XMLHTTP");
      xmlHTTP.open("Get",strRemoteURL,false);
      xmlHTTP.send();
      var adodbStream=new ActiveXObject("ADODB.Stream");
      adodbStream.Type=1;//1=adTypeBinary
      adodbStream.Open();
      adodbStream.write(xmlHTTP.responseBody);
      adodbStream.SaveToFile(strLocalURL,2);
      adodbStream.Close();
      adodbStream=null;
      xmlHTTP=null;
      
     }
     catch(e)
     {
      window.confirm("下载URL出错!");
     }
     //window.confirm("下载完成.");
    }

    //检验连接是否有效

    function getXML(URL) 
    {
     var xmlhttp = new ActiveXObject("microsoft.xmlhttp");
     xmlhttp.Open("GET",URL, false); 
     try
     { 
      xmlhttp.Send();
     }
     catch(e){}
     finally 
     {
      var result = xmlhttp.responseText;
      if(result) 
      {
       if(xmlhttp.Status==200)
       {
        return(true);
       }
       else 
       {
        return(false);
       }
      }
      else 
      {
       return(false);
      }
     }
    }

    //POST代替FORM

     

     

     

    //组件是否安装
    isComponentInstalled("{6B053A4B-A7EC-4D3D-4567-B8FF8A1A5739}", "componentID"))

    //检查网页是否存在

    function CheckURL(URL)
    {
      var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      xmlhttp.Open("GET",URL, false);
      try
      { 
        xmlhttp.Send(); 
        var result = xmlhttp.status;
      }
      catch(e) {return(false); }
      if(result==200)
      { 
        return true;
      }
      xmlhttp = null;
      return false;
    }

    //连接数据库

    <script language="javascript">
      //用 JavaScript 写服务器端连接数据库的代码示例
      var conn = new ActiveXObject("ADODB.Connection");
      conn.Open("Provider=SQLOLEDB.1; Data Source=localhost; User ID=sa; "
        +"Password=; Initial Catalog=pubs");
      var rs = new ActiveXObject("ADODB.Recordset");
      var sql="select * from authors";
      rs.open(sql, conn);
     shtml = "<table width='100%' border=1>";
     shtml +="<tr bgcolor='#f4f4f4'><td>au_id</td><td>au_lname</td><td>au_fname</td><td>phone</td><td>address</td><td> city</td><td>state</td><td>zip</td></tr>";
      while(!rs.EOF)
      {
     shtml += "<tr><td>" + rs("au_id") + "</td><td>" + rs("au_lname") + "</td><td>" + rs("au_fname") + "</td><td>" + rs("phone") + "</td><td>" + rs("address") + "</td><td>" + rs("city") + "</td><td>" + rs("state") + "</td><td>" + rs("zip") + "</td></tr>";
     rs.moveNext;
      }
      shtml += "</table>";
      document.write(shtml);
      rs.close(); 
      rs = null
      conn.close(); 
      conn = null;
    </script>

    //使用数据岛

    <html>
    <body>
    srno:<input type=text datasrc=#xmldate DataFLD=srno size="76"><BR>
    times:<input type=text datasrc=#xmldate DataFLD=times size="76"><BR>
    <input id="first" TYPE=button value="<< 第一条记录" onclick="xmldate.recordset.moveFirst()">
    <input id="prev" TYPE=button value="<上一条记录" onclick="xmldate.recordset.movePrevious()">  
    <input id="next" TYPE=button value="下一条记录>" onclick="xmldate.recordset.moveNext()">  
    <input id="last" TYPE=button value="最后一条记录>>" onclick="xmldate.recordset.moveLast()">   
    <input id="Add" TYPE=button value="添加新记录" onclick="xmldate.recordset.addNew()">  

    <XML ID="xmldate">
    <infolist>
    <info ><srno>20041025-01</srno><times>null</times></info>
    <info ><srno>20041101-09</srno><times>2004年10月1日2点22分0秒</times></info>
    </infolist>
    </XML>
    </body>
    </html>

    //获得参数

    <body>
    <a href="javascript:location.href=location.href + '?a=1&b=2'">search</a>
    <script language="JavaScript">
    <!--
    var a = location.search.substr(1);
    if(a.length>0)
    {
     var re = /([^&]*?)/=([^&]*)/g
     var s = a.match(re);
     for(var i= 0;i<s.length;i++)
     {
      alert(s[i]);
      alert(s[i].split("=")[1]);
     }
    }
    //-->
    </script>
    </body>

    //可编辑Select

     

     

     

     

    //设置光标位置

    function getCaret(textbox)
    {
     var control = document.activeElement;
     textbox.focus();
     var rang = document.selection.createRange();
      rang.setEndPoint("StartToStart",textbox.createTextRange())
     control.focus();
     return rang.text.length;
    }
    function setCaret(textbox,pos)
    {
     try
     {
      var r =textbox.createTextRange();
       r.moveStart('character',pos);
       r.collapse(true);
       r.select();
     }
     catch(e)
     {}
    }
    function selectLength(textbox,start,len)
    {
     try
     {
      var r =textbox.createTextRange();
     
      r.moveEnd('character',len-(textbox.value.length-start));
      r.moveStart('character',start);
      
      r.select();
     }
     catch(e)
     {//alert(e.description)}
    }
    function insertAtCaret(textbox,text)
    {
     textbox.focus();
     document.selection.createRange().text = text;
    }

    //页内查找

    function findInPage(str)
    {
     var txt, i, found,n = 0;
     if (str == "")
     {
      return false;
     }
     txt = document.body.createTextRange();
     for (i = 0; i <= n && (found = txt.findText(str)) != false; i++)
     {
      txt.moveStart("character", 1);
      txt.moveEnd("textedit");
     }
     if (found)
     {
      txt.moveStart("character", -1);
      txt.findText(str);
      txt.select();
      txt.scrollIntoView();
      n++;  
     }
     else
     {
      if (n > 0)
      {
       n = 0;
       findInPage(str);
      }
      else
      {
       alert(str + "...            您要找的文字不存在。/n /n请试着输入页面中的关键字再次查找!");
      }
     }
     return false;
    }

    //书

    http://www.itpub.net/attachment.php?s=&postid=1894598
    http://www.wrclub.net/down/listdown.aspx?id=1341

    //操作EXECL

    <script language="javascript">
    function jStartExcel() {
     var xls = new ActiveXObject ( "Excel.Application" );
     xls.visible = true;
     var newBook = xls.Workbooks.Add;
     newBook.Worksheets.Add;
     newBook.Worksheets(1).Activate;
     xls.ActiveWorkBook.ActiveSheet.PageSetup.Orientation = 2;
     xls.ActiveWorkBook.ActiveSheet.PageSetup.PaperSize = 5;
     newBook.Worksheets(1).Columns("A").columnwidth=50;
     newBook.Worksheets(1).Columns("A").WrapText = true;
     newBook.Worksheets(1).Columns("B").columnwidth=50;
     newBook.Worksheets(1).Columns("B").WrapText = true;
     newBook.Worksheets(1).Range("A1:B1000").NumberFormat = "0";
     newBook.Worksheets(1).Range("A1:B1000").HorizontalAlignment = -4131;
     newBook.Worksheets(1).Cells(1,1).Interior.ColorIndex="15";
     newBook.Worksheets(1).Cells(1,1).value="First Column, First Cell";
     newBook.Worksheets(1).Cells(2,1).value="First Column, Second Cell";
     newBook.Worksheets(1).Cells(1,2).value="Second Column, First Cell";
     newBook.Worksheets(1).Cells(2,2).value="Second Column, Second Cell";
     newBook.Worksheets(1).Name="My First WorkSheet";
    }
    </script>

    //自定义提示条

    <a href="#" title="这是提示">tip</a>
    <script Language="JavaScript">
    //***********默认设置定义.*********************
    tPopWait=50;//停留tWait豪秒后显示提示。
    tPopShow=5000;//显示tShow豪秒后关闭提示
    showPopStep=20;
    popOpacity=99;
    //***************内部变量定义*****************
    sPop=null;
    curShow=null;
    tFadeOut=null;
    tFadeIn=null;
    tFadeWaiting=null;
    document.write("<style type='text/css'id='defaultPopStyle'>");
    document.write(".cPopText {  background-color: #F8F8F5;color:#000000; border: 1px #000000 solid;font-color: font-size: 12px; padding-right: 4px; padding-left: 4px; height: 20px; padding-top: 2px; padding-bottom: 2px; filter: Alpha(Opacity=0)}");
    document.write("</style>");
    document.write("<div id='dypopLayer' style='position:absolute;z-index:1000;' class='cPopText'></div>");

    function showPopupText(){
    var o=event.srcElement;
    MouseX=event.x;
    MouseY=event.y;
    if(o.alt!=null && o.alt!=""){o.dypop=o.alt;o.alt=""};
            if(o.title!=null && o.title!=""){o.dypop=o.title;o.title=""};
    if(o.dypop!=sPop) {
    sPop=o.dypop;
    clearTimeout(curShow);
    clearTimeout(tFadeOut);
    clearTimeout(tFadeIn);
    clearTimeout(tFadeWaiting);
    if(sPop==null || sPop=="") {
    dypopLayer.innerHTML="";
    dypopLayer.style.filter="Alpha()";
    dypopLayer.filters.Alpha.opacity=0;
    }
    else {
    if(o.dyclass!=null) popStyle=o.dyclass 
    else popStyle="cPopText";
    curShow=setTimeout("showIt()",tPopWait);
    }
    }
    }
    function showIt(){
    dypopLayer.className=popStyle;
    dypopLayer.innerHTML=sPop;
    popWidth=dypopLayer.clientWidth;
    popHeight=dypopLayer.clientHeight;
    if(MouseX+12+popWidth>document.body.clientWidth) popLeftAdjust=-popWidth-24
    else popLeftAdjust=0;
    if(MouseY+12+popHeight>document.body.clientHeight) popTopAdjust=-popHeight-24
    else popTopAdjust=0;
    dypopLayer.style.left=MouseX+12+document.body.scrollLeft+popLeftAdjust;
    dypopLayer.style.top=MouseY+12+document.body.scrollTop+popTopAdjust;
    dypopLayer.style.filter="Alpha(Opacity=0)";
    fadeOut();
    }
    function fadeOut(){
    if(dypopLayer.filters.Alpha.opacity<popOpacity) {
    dypopLayer.filters.Alpha.opacity+=showPopStep;
    tFadeOut=setTimeout("fadeOut()",1);
    }
    else {
    dypopLayer.filters.Alpha.opacity=popOpacity;
    tFadeWaiting=setTimeout("fadeIn()",tPopShow);
    }
    }
    function fadeIn(){
    if(dypopLayer.filters.Alpha.opacity>0) {
    dypopLayer.filters.Alpha.opacity-=1;
    tFadeIn=setTimeout("fadeIn()",1);
    }
    }
    document.onmouseover=showPopupText;
    </script>

    //插入文字

    document.onclick =function(){ 
    var oSource = window.event.srcElement; 
    if(oSource.tagName!="DIV"
    return false
    var sel = document.selection; 
    if (sel!=null) { 
    var rng = sel.createRange(); 
    if (rng!=null
    rng.pasteHTML("<font color=red>插入文字</font>"); 

    //netscapte下操作xml

     

     

    //判断键值

     

     

    //禁止FSO

    1.注销组件
    regsvr32 /u scrrun.dll
    2.修改PROGID 
    HKEY_CLASSES_ROOT/Scripting.FileSystemObject
    Scripting.FileSystemObject
    3.对于使用object的用户,修改HKEY_CLASSES_ROOT/Scripting.

    //省略号

     

     

    //检测media play版本

     

     

    //图象按比例

     

     

    //细线Select

     

     

    function getComputerName()
    {
     var objWMIService = GetObject("Winmgmts:root/cimv2");
     for(e = new Enumerator(objWMIService) ; !e.atEnd() ; e.moveNext())
     {
        var getComputer = e.item();
        return getComputer.Name;
     }
    }

    //条件编译

     

     

    <SCRIPT LANGUAGE="JavaScript">
    <!--
     var xmlDoc = new ActiveXObject("Msxml2.DOMDocument.4.0");
     var currNode;
     xmlDoc.async = false;
     xmlDoc.async = false;
     xmlDoc.loadXML("<TABLENAME>      你好你阿三    大法     司法等四              </TABLENAME>");
     currNode = xmlDoc.documentElement;
       
      var s = currNode.xml;
      var r = //<([^/>/s]*?)[^/>]*?/>([^/<]*?)/<///1/>/
      var b = s.replace(r,"$2");
      alert(b);
    //-->
    </SCRIPT>

    //mergeAttributes 复制所有读/写标签属性到指定元素。

    <SCRIPT>
    function fnMerge(){
    oSource.children[1].mergeAttributes(oSource.children[0]);
    }
    </SCRIPT>
    <SPAN ID=oSource>
    <DIV
    ID="oDiv"
    ATTRIBUTE1="true"
    ATTRIBUTE2="true"
    onclick="alert('click');"
    onmouseover="this.style.color='#0000FF';"
    onmouseout="this.style.color='#000000';"
    >
    This is a sample <B>DIV</B> element.
    </DIV>
    <DIV ID="oDiv2">
    This is another sample <B>DIV</B> element.
    </DIV>
    </SPAN>
    <INPUT
    TYPE="button"
    VALUE="Merge Attributes"
    onclick="fnMerge()"
    >


    以上内容可以随意转载,转载后请注名来源和出处! 出处是 http://ttyp.cnblogs.com/

    下一篇是 JavaScript[对象.属性]集锦

     

    <script language=javascript>
    /*@cc_on @*/
    /*@if (@_win32 && @_jscript_version>5)
    function window.confirm(str)
    {
        execScript("n = msgbox('"+ str +"', 257)", "vbscript");
        return(n == 1);
    }
    @end @*/

    </script>

    //取得innerText

     

    <span style="border:1px solid #000000; position:absolute; overflow:hidden;" >
    <select style="margin:-2px;">
    <option>1111</option>
    <option>11111111111111</option>
    <option>111111111</option>
    </select></span>

    //Import

    function Import() {
     for( var i=0; i<arguments.length; i++ ) {
      var file = arguments[i];
      if ( file.match(//.js$/i)) 
       document.write('<script type=/"text/javascript/" src=/"' + file + '/"></sc' + 'ript>');
      else
       document.write('<style type=/"text/css/"
    >@import /"' + file + '/" ;</style>');
     }
    };

    //js枚举

     

    <script language="JavaScript">
    <!--
    //图片按比例缩放
    var
     flag=false;
    function DrawImage(ImgD){
     var image=new Image();
     var iwidth = 80;  //定义允许图片宽度
     var iheight = 80;  //定义允许图片高度
     image.src=ImgD.src;
     if(image.width>0 && image.height>0){
     flag=true;
     if(image.width/image.height>= iwidth/iheight){
      if(image.width>iwidth){  
      ImgD.width=iwidth;
      ImgD.height=(image.height*iwidth)/image.width;
      }else{
      ImgD.width=image.width;  
      ImgD.height=image.height;
      }
      ImgD.alt=image.width+"×"+image.height;
      }
     else{
      if(image.height>iheight){  
      ImgD.height=iheight;
      ImgD.width=(image.width*iheight)/image.height;  
      }else{
      ImgD.width=image.width;  
      ImgD.height=image.height;
      }
      ImgD.alt=image.width+"×"+image.height;
      }
     }

    //-->
    </script>
    <img src=".." onload = "DrawImage(this)">

     

     

    <IE:clientCaps ID="oClientCaps" style="{behavior:url(#default#clientcaps)}" />
    <SCRIPT>
    var flash="";
        WMPVersion= oClientCaps.getComponentVersion("{22D6F312-B0F6-11D0-94AB-0080C74C7E95}","ComponentID"); 
        if (WMPVersion != "") {
        flash = "";
        var version = WMPVersion.split(",");
        var i;
        for (i = 0; i < version.length; i++) {
          if (i != 0)
        flash += ".";
          flash += version[i];
        }
         document.write("您的Windows Media Player 版本是:"+flash+"<p>");
      }
    </SCRIPT>

     

     

    <DIV STYLE="width: 120px; height: 50px; border: 1px solid blue;
                overflow: hidden; text-overflow:ellipsis"
    >
    <NOBR>就是比如有一行文字,很长,表格内一行显示不下.</NOBR>
    </DIV>

     

    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <head>
    <script language="javascript">
    var ie  =navigator.appName=="Microsoft Internet Explorer"?true:false;
      
    function keyDown(e)
    {
     if(!ie)
     {
      var nkey=e.which;
      var iekey='现在是ns浏览器';
      var realkey=String.fromCharCode(e.which);
     }
     if(ie)
     {
      var iekey=event.keyCode;
      var nkey='现在是ie浏览器';
      var realkey=String.fromCharCode(event.keyCode);
      if(event.keyCode==32){realkey='/' 空格/''}
      if(event.keyCode==13){realkey='/' 回车/''}
      if(event.keyCode==27){realkey='/' Esc/''}
      if(event.keyCode==16){realkey='/' Shift/''}
      if(event.keyCode==17){realkey='/' Ctrl/''}
      if(event.keyCode==18){realkey='/' Alt/''}
     }
     alert('ns浏览器中键值:'+nkey+'/n'+'ie浏览器中键值:'+iekey+'/n'+'实际键为'+realkey);
    }
    document.onkeydown = keyDown;
    </script>
    </head>
    <body>
    //Javascript Document.
    <hr>
    <center>
    <h3>请按任意一个键。。。。</h3>
    </center>
    </body>
    </html>

     

    doc = new ActiveXObject("Msxml2.DOMDocument");
    doc = new ActiveXObject("Microsoft.XMLDOM")
    ->>
    doc = (new DOMParser()).parseFromString(sXML,'text/xml')

     

    <input type=text name=re_name style="width:100px;height:21px;font-size:10pt;"><span style="width:18px;border:0px solid red;"><select name="r00" style="margin-left:-100px;width:118px; background-color:#FFEEEE;" onChange="document.all.re_name.value=this.value;">
                    <option value="1">11111111<option>
                    <option value="2">222222</option>
                    <option value="3">333333</option>
                  </select>
                  </span>

     

    <SCRIPT language="VBScript">
    Function URLEncoding(vstrIn)
        strReturn = ""
        For i = 1 To Len(vstrIn)
            ThisChr = Mid(vStrIn,i,1)
            If Abs(Asc(ThisChr)) < &HFF Then
                strReturn = strReturn & ThisChr
            Else
                innerCode = Asc(ThisChr)
                If innerCode < 0 Then
                    innerCode = innerCode + &H10000
                End If
                Hight8 = (innerCode  And &HFF00)/ &HFF
                Low8 = innerCode And &HFF
                strReturn = strReturn & "%" & Hex(Hight8) &  "%" & Hex(Low8)
            End If
        Next
        URLEncoding = strReturn
    End Function
    Function bytes2BSTR(vIn)
        strReturn = ""
        For i = 1 To LenB(vIn)
            ThisCharCode = AscB(MidB(vIn,i,1))
            If ThisCharCode < &H80 Then
                strReturn = strReturn & Chr(ThisCharCode)
            Else
                NextCharCode = AscB(MidB(vIn,i+1,1))
                strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
                i = i + 1
            End If
        Next
        bytes2BSTR = strReturn
    End Function
    dim strA,oReq
    strA = URLEncoding("submit1=Submit&text1=中文")
    set oReq = CreateObject("MSXML2.XMLHTTP")
    oReq.open "POST","http://ServerName/VDir/TstResult.asp",false
    oReq.setRequestHeader "Content-Length",Len(strA)
    oReq.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
    oReq.send strA
    msgbox bytes2BSTR(oReq.responseBody)
    </SCRIPT>

    //readyState是xmlhttp返回数据的进度,0=载入中,1=未初始化,2=已载入,3=运行中,4=完成

     

    (1)拖拽访问
    event.dataTransfer.setData("URL", oImage.src);
    sImageURL = event.dataTransfer.getData("URL")
    (2)普通访问
    window.clipboardData.setData("Text",oSource.innerText);
    window.clipboardData.getData("Text");

     

    <HTML>
    <HEAD>
    <META NAME="save" CONTENT="history">
    <STYLE>
       .sHistory {behavior:url(#default#savehistory);}
    </STYLE>
    </HEAD>
    <BODY>
    <INPUT class=sHistory type=text id=oPersistInput>
    </BODY>
    </HTML>

     

    function modelessAlert(Msg)
    {
       window.showModelessDialog("javascript:alert(/""+escape(Msg)+"/");window.close();","","status:no;resizable:no;help:no;dialogHeight:height:30px;dialogHeight:40px;");
    }

     

    <p  style="page-break-after:always">page1</p>  
    <p  style="page-break-after:always">page2</p>  

     

    <meta name="ROBOTS" content="属性值">
      其中属性值有以下一些:
      属性值为"all": 文件将被检索,且页上链接可被查询;
      属性值为"none": 文件不被检索,而且不查询页上的链接;
      属性值为"index": 文件将被检索;
      属性值为"follow": 查询页上的链接;
      属性值为"noindex": 文件不检索,但可被查询链接;
      属性值为"nofollow"

     

    <object id=min classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"
    <param name="Command" value="Minimize"></object> 
    <object id=max classid="clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11"
    <param name="Command" value="Maximize"></object> 
    <OBJECT id=close classid="clsid:adb880a6-d8ff-11cf-9377-00aa003b7a11"
    <PARAM NAME="Command" value="Close"></OBJECT> 
    <input type=button value=最小化 onclick=min.Click()> 
    <input type=button value=最大化 onclick=max.Click()> 
    <input type=button value=关闭 onclick=close.Click()> 

     

    <IMG SRC="mypicture.jpg" HEIGHT="100px" WIDTH="100px" GALLERYIMG="false"
    or
    <head>
    <meta http-equiv="imagetoolbar" content="no">
    </head>

     

    <META HTTP-EQUIV="pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate">
    <META HTTP-EQUIV="expires" CONTENT="0">

     

     

    <input type=button value=导入收藏夹 onclick="window.external.ImportExportFavorites(true,'http://localhost');">
    <input type=button value=导出收藏夹 onclick="window.external.ImportExportFavorites(false,'http://localhost');">
    <input type=button value=整理收藏夹 onclick="window.external.ShowBrowserUI('OrganizeFavorites', null)">
    <input type=button value=语言设置   onclick="window.external.ShowBrowserUI('LanguageDialog', null)">
    <input type=button value=加入收藏夹 onclick="window.external.AddFavorite('http://www.google.com/', 'google')">
    <input type=button value=加入到频道 onclick="window.external.addChannel('http://www.google.com/')">
    <input type=button value=加入到频道 onclick="window.external.showBrowserUI('PrivacySettings',null)">

     

    <input type=text onkeypress="return event.keyCode>=48&&event.keyCode<=57||(this.value.indexOf('.')<0?event.keyCode==46:false)" onpaste="return !clipboardData.getData('text').match(//D/)" ondragenter="return false">

    SCRIPT 标记 

    用于包含javascript代码. 

    语法 

    属性 

    LANGUAGE 定义脚本语言 

    SRC 定义一个URL用以指定以.JS结尾的文件 

    windows对象 

    每个HTML文档的顶层对象. 

    属性 

    frames[] 子桢数组.每个子桢数组按源文档中定义的顺序存放. 

    feames.length 子桢个数. 

    self 当前窗口. 

    parent 父窗口(当前窗口是中一个子窗口). 

    top 顶层窗口(是所有可见窗口的父窗口). 

    status 浏览器状态窗口上的消息. 

    defaultStatus 当status无效时,出现在浏览器状态窗口上的缺省消息. 

    name 内部名,为由window.open()方法打开的窗口定义的名字. 

    方法 

    alert("message") 显示含有给定消息的"javascript Alert"对话框. 

    confirm("message") 显示含有给定消息的"Confirm"对话框(有一个OK按钮和一个Cancel按钮).如果用户单击OK返回true,否则返回false. 

    prompt("message") 显示一个"prompt"对话框,要求用户根据显示消息给予相应输入. 

    open("URL","name") 打开一个新窗口,给予一个指定的名字. 

    close() 关闭当前窗口.

    frame对象 

    它是整个浏览器窗口的子窗口,除了status,defaultStatus,name属性外,它拥有window对象的全部属性. 

    location对象 

    含有当前URL的信息. 

    属性 

    href 整个URL字符串. 

    protocol 含有URL第一部分的字符串,如http: 

    host 包含有URL中主机名:端口号部分的字符串.如//www.cenpok.net/server/ 

    hostname 包含URL中主机名的字符串.如http://www.cenpok.net 

    port 包含URL中可能存在的端口号字符串. 

    pathname URL中"/"以后的部分.如~list/index.htm 

    hash "#"号(CGI参数)之后的字符串. 

    search "?"号(CGI参数)之后的字符串. 
     

    document对象

    含有当前文档信息的对象.

    属性

    title 当前文档标题,如果未定义,则包含"Untitled".

    location 文档的全URL.

    lastModified 含有文档最后修改日期.

    referrer 调用者URL,即用户是从哪个URL链接到当前页面的.

    bgColor 背景色(#xxxxxx)

    fgColor 前景文本颜色.

    linkColor 超链接颜色.

    vlinkColor 访问过的超链颜色.

    alinkColor 激活链颜色(鼠标按住未放时).

    forms[] 文档中form对象的数组,按定义次序存储.

    forms.length 文档中的form对象数目.

    links[] 与文档中所有HREF链对应的数组对象,按次序定义存储.

    links.length 文档中HREF链的数目.

    anchors[] 锚(...)数组,按次序定义存储.

    anchors.length 文档中锚的数目.

    方法

    write("string") 将字符串突出给当前窗口.(字符串可以含有HTML标记)

    writeln("string") 与write()类似,在结尾追加回车符,只在预定格式文本中(

    ...

    ...
    )生效.

    clear() 清当前窗口.

    close() 关闭当前窗口.

    form对象

    属性

    name

    中的NAME属性的字符串值.

    method 中METHOD属性的类值,"0"="GET" ,"1"="POST" .

    action 中ACTION属性的字符串值.

    target 表格数据提交的目标,与标记中相应属性一致.

    elements[index] elements属性包含form中的各个元素.

    length 表格中的元素个数.

    方法

    submit() 提交表格.

    事件处理器onSubmit() 用户单击一个定义好的按钮提交form时运行的代码.

    text和textarea对象

    属性

    name NAME属性的字符串值.

    value 域内容的字符串值.

    defaultValue 域内容的初始字符串值.

    方法

    focus() 设置对象输入焦点.

    blur() 从对象上移走输入焦点.

    select() 选定对象的输入区域.

    事件处理器

    onFocus 当输入焦点进入时执行.

    onBlur 当域失去焦点时执行.

    onSelect 当域中有部分文本被选定时执行.

    onChange 当域失去焦点且域值相对于onFocus执行有所改变时执行.

    复选框(checkbox)对象

    属性

    name NAME属性的字符串值.

    value 复选框内容的字符串值.如果设置了,则为"on",否则为"off".

    checked 复选框内容的布尔值.如果设置了,则为true,否则为false .

    defaultChecked 反映(CHECKED)属性的布尔值(缺省状态).

    方法

    click() 选定复选框,并使之状态为"on".

    事件处理器

    onClick 当用户单击Checkbox时执行.

    单选按钮(radio)对象

    属性

    name NAME属性的字符串值.

    length radio对象中单选按钮的个数.

    value VALUE属性的字符串值.

    checked 布尔值,按下为true,否则为false .

    defaultChecked 反映CHECKED属性值的布尔值.

    方法

    click() 选定单选按钮.

    事件处理器

    onClick 当单选按钮被选定时执行.

    select对象

    属性

    length select对象中对象的个数.

    name 由NAME=属性定义的select对象的内部名.

    selectedIndex select对象中当前被选option的下标.

    options 该属性对应于在HTML中定义select对象时标记中的内容,它有如下属性:

    text 标记后的文本串.

    value VALUE属性的值,当Submit按钮被按下时,该值被提交.

    defaultSelected 反映标记的SelectED属性的布尔值.

    selected 反映option的当前选择状态的布尔值.

    事件处理器

    onFocus 当输入焦点进入域时执行.

    onBlur 当域失去输入焦点时执行.

    onChange 当域失去焦点且如果域的值相对于onFocus执行时有所改变,则执行onChange.

    Button对象

     

    表格中有三种类型按钮,由标记中的TYPE属性定义:

    .submit (type="SUBMIT")

    .reset (type="RESET")

    .custom (type="BUTTON")

    所有按钮对象都有如下成分:

    属性

    value VALUE属性的字符串值.

    name NAME属性的字符串值.

    方法

    click() 选定按钮

    事件处理器

    onClick 当按钮被单击时执行.

    submit和reset对象

    属性

    value VALUE=属性的内容.

    name NAME=属性的内容.

    方法

    click() 选定按钮

    事件处理器

    onClick 当按钮被单击时执行.

    password对象

    属性

    defaultValue VALUE=属性的内容.

    name NAME=属性的内容.

    value 目前输入password域的数据.

    方法

    focus() 将焦点带入password域.

    blur 将焦点从password域移出.

    select() 选定password域中的当前数据,以备修改.

    navigator对象

    该对象用于确定用户访问时使用的Navigator版本.

    属性

    appCodeName 相对于用户浏览器的"codename"

    appName 相对于用户浏览器的实际名字.

    appVersion 相对于用户浏览器的版本号.

    userAgent 该属性反映用户浏览器的全部信息.

    string对象

    string对象为操作字符串的内容提供了很多方法.

    属性

    length 字符串的长度,即字符串中字符的个数.

    方法

    big(),blink(),bold(),fixed(),italics(),small(),sub(),strike(),sup(),fontColor(color),fontSize(size)

    以上方法为字符串增加相应的HTML标记.

    charAt(index) 返回字符串中index处的字符.

    indexOf(searchValue,[fromIndex]) 该方法在字符串中寻找第一次出现的searchValue.如果给定了fromIndex,则从

    字符串内该位置开始搜索,当searchValue找到后,返回该串第一个字符的位置.

    lastIndexOf(searchValue,[fromIndex]) 从字符串的尾部向前搜索searchValue,并报告找到的第一个实例.

    substring(indexA,indexB) 获取自indexA到indexB的子串.

    toLowerCase(),toUpperCase() 将字符串中所有字符全部转换成大写,小写.

    Date对象

    要使用Date对象,必须先生成一个Date实例:

    变量名=new Date();

    方法

    getDay(),getDate(),getHours(),getMinutes(),getMonth(),getSeconds(),getTime(),

    getTimeZoneOffset(),getYear()

    还有setDay... ...

    toGMTString() 用GMT格式返回当前时间. (Sun,12 Feb 1999 14:19:22 GMT)

    toLocaleString 用locale格式返回当前时间. (03/11/99 14:19:22)

    parse(date) 将普通date字符串转换成豪秒形式,从而给setTime()做参数.

    Math对象

    属性

    LN10 (10的自然对数)

    PI (3.1415926...)

    SQRT1_2 (1/2的平方根)

    方法

    abs(x) 返回x的绝对值

    acos(x) 返回x的arc cosine值

    asin(x) 返回x的arc sin值

    atan(x) 返回x的arc tangent值

    ceil(x) 返回大于等于x的最小整数

    cos(x) 返回x的cosine值

    exp(x) 返回e的x次方

    floor(x) 返回小于等于x的最大整数

    log(x) 返回x的

    max(x,y) 返回x,y中的大值

    min(x,y) 返回x,y中的小值

    pow(x,y) 返回x的y次方

    round(x) 舍入到最近整数,(小于或等于0.5小数舍去)

    sin(x) 返回x的sin值

    sqrt(x) 返回x的平方根

    tan(x) 返回x的tangent值

    166月/120

    有效管理电脑文件

    发布在 邵珠庆

    成堆的有用无用的纸、杂乱无章的书籍和办公用品散落在各处,这就是我们办公桌上的一般情形。在电脑的内部,在电脑的桌面上,在"资源管理器"中,也同样充斥着无序与混乱。这种虚拟的混乱极大地影响了电脑的性能和我们办公的效率,当许多人面临这个问题时,认为硬盘空间又不够了,电脑性能又不跟不上了,需要再换一台新的电脑了。事实上,我们真正需要的是坐下来,好好花时间将电脑里的文件真正管理起来,会为自己日后省下更多的时间。

    文件管理的真谛在于方便保存和迅速提取,所有的文件将通过文件夹分类被很好地组织起来,放在你最能方便找到的地方。解决这个问题目前最理想的方法就是分类管理,从硬盘分区开始到每一个文件夹的建立,我们都要按照自己的工作和生活需要,分为大大小小、多个层级的文件夹,建立合理的文件保存架构。此外所有的文件、文件夹,都要规范化地命名,并放入最合适的文件夹中。这样,当我们需要什么文件时,就知道到哪里去寻找。这种方法,对于相当数量的人来说,并不是一件轻松的事,因为他们习惯了随手存放文件和辛苦、茫无头绪地查找文件。下面,我们将帮你制订一套分类管理的原则,并敦促您养成好的文件管理习惯。以下是我们总结出的一些基本技巧,这些技巧并不是教条,可能并不适合你,但无论如何你必须要有自己的规则,并坚持下来,形成习惯。

    第一招 发挥我的文档的作用

    有很多理由让我们好好地利用"我的文档",它能方便地在桌面上、开始菜单、资源管理器、保存/打开窗口中找到,有利于我们方便而快捷地打开、保存文件。我们可以利用"我的文档"中已有的目录,也可以创建自己的目录,将经常需要访问的文件存储在这里。至于"我的文档"存储在C盘,在重装系统时可能会误删除的问题,可以在非系统盘建立一个目录,然后右击桌面上的"我的文档",选择"属性"。在弹出的"我的文档 属性"窗口中,单击目标文件夹下的"移动"按钮,然后在新的窗口中指定我们刚创建的文件夹。重装系统后再次执行以上操作,再重新指向此文件夹即可,即安全又便捷。

    小提示

    如果你使用Windows 2000/XP,则移动"我的文档"文件夹时,其下的所有文件会自动移过去,但如果你使用Windows 9x,则需要手工将C:/My Documents下的所有文件手工移到新指定的文件夹中,否则可能会丢失数据。

    第二招 建立最适合自己的文件夹结构

    文件夹是文件管理系统的骨架,对文件管理来说至关重要。建立适合自己的文件夹结构,需要首先对自己接触到的各种信息、工作和生活内容进行归纳分析。每个人的工作和生活有所不同,接受的信息也会有很大差异,因此分析自己的信息类别是建立结构的前提。比如,有相当多的IT自由撰稿人和编辑就是以软件、硬件的类别建立文件夹;而很多老师,就是以自己的工作内容比如教学工作、班主任工作建立文件夹。 

    同类的文件名字可用相同字母前缀的文件来命名,同类的文件最好存储在同一目录,如图片目录用image,多媒体目录用media,文档用doc等等,简洁易懂,一目了然,而且方便用一个软件打开。这样,当我们想要找到一个文件时,能立刻想到它可能保存的地方。

    第三招 控制文件夹与文件的数目

    文件夹里的数目不应当过多,一个文件夹里面有50个以内的文件数是比较容易浏览和检索的。如果超过100个文件,浏览和打开的速度就会变慢且不方便查看了。这种情况下,就得考虑存档、删除一些文件,或将此文件夹分为几个文件或建立一些子文件夹。另一方面,如果有文件夹的文件数目长期只有少得可怜的几个文件,也建议将此文件夹合并到其他文件夹中。

    第四招 注意结构的级数

    分类的细化必然带来结构级别的增多,级数越多,检索和浏览的效率就会越低,建议整个结构最好控制在二、三级。另外,级别最好与自己经常处理的信息相结合。越常用的类别,级别就越高,比如负责多媒体栏目的编辑,那多媒体这个文件夹就应当是一级文件夹,老师本学期所教授的课程、所管理班级的资料文件夹,也应当是一级文件夹。文件夹的数目,文件夹里文件的数目以及文件夹的层级,往往不能两全,我们只能找一个最佳的结合点。

    第五招 文件和文件夹的命名

    为文件和文件夹取一个好名字至关重要,但什么是好名字,却没有固定的含义,以最短的词句描述此文件夹类别和作用,能让你自己不需要打开就能记起文件的大概内容,能就是好的名称。要为电脑中所有的文件和文件夹使用统一的命名规则,这些规则需要我们自己来制订。最开始使用这些规则时,肯定不会像往常一样随便输入几个字那样轻松,但一旦你体会到了规则命名方便查看和检索的好处时,相信你会坚持不懈地执行下去。

    另外,从排序的角度上来说,我们常用的文件夹或文件在起名时,可以加一些特殊的标示符,让他们排在前面。比如当某一个文件夹或文件相比于同一级别的来说,要访问次数多得多时,笔者就会在此名字前加上一个"1"或"★",这可以使这些文件和文件夹排列在同目录下所有文件的最前面,而相对次要但也经常访问的,就可以加上"2"或"★★",以此类推。

    此外,文件名要力求简短,虽然Windows已经支持长文件名了,但长文件名也会给我们的识别、浏览带来混乱。

    第六招 注意分开要处理的与已经完成的

    如果一年前的文件还和你现在正要处理的文件摆在一起,如果几个月前的邮件还和新邮件放在一块,那你将会很难一眼找到你想要的东西。及时地处理过期的文件,备份该备份的,删除不需要的,是一个良好的习惯。以老师为例,上学期教授课程的教案与资料,本学期使用的频率会非常小,所以应当专门将到存放后另一个级别较低的文件夹中,甚至于刻录到光盘中。而并本学期的一些文档,因为要经常访问,最好放置在"我的文档"中以方便时时访问。对于老师来说,一个学期就是一个周期,过一个周期,就相应地处理本周期的文件夹。对于其他行业的人来说,也有不同的周期,我们要根据自己的实际工作和生活需要对文件夹、文件进行归档。

    小提示

    为了数据安全,及时备份是必需要的

    第七招 发挥快捷方式的便利

    如果我们经常要快速访问文件或文件夹,那可以右击选择"创建快捷方式",再将生成的快捷方式放置到你经常停留的地方。当然,当文件和文件夹不再需要经常访问时,你需要及时将快捷方式删除,以免快捷方式塞堵了太多空间或牵扯了你的注意力。

    第八招 现在开始与长期坚持

    建立完善的结构、规范化地命名、周期性地归档,这就是我们要做的。这并不复杂的操作却能大大提高我们的工作效率,节省我们已经很有限的时间。
    如果你现在就开始,那请首先拿出一张纸,明了你的信息类别,明确准备创建的文件夹个数与位置,还有为重要的文件夹制订文件命名规则及归档规则。然后按此规则将电脑中已经存在的大量信息进行移动、更名、删除等操作,而且要在以后操作中克服自己的陋习。

    也许开头会很难,也许规则会很繁琐,但相信过不了多久,你就已经习惯于看到井井有条的文件与文件夹,并享受高效管理带来的快乐了

    146月/120

    文件分类方法

    发布在 邵珠庆

    某互联网公司技术经理,其文件第一层主要分为:个人、工作、学习、工具,在工作文件夹下面根据工作类型分为项目、日常、管理。因为该技术经理的主要工作是围绕项目展开,所以项目下面再根据项目名称进行分类;除项目工如图作外,还有日常性的工作,例如服务器维护、内容管理系统维护等内容,管理是该技术经理在公司的另一个角色,涵盖了制度、流程、考核等内容。当然在个人、学习、工具文件夹下面都有相应的再分类。

    个人文件命名体系

    谈到文件命名,你可能会有疑问,这谁不会啊!是的,好像谁都会,可是有几个人能做到科学地命名呢?通常是随便起个名字,就存到某个地方去了,结果造成想找到的时候变得非常困难。当有一个公司人想寻找公司ERP系统的项目总结报告时,他用“项目总结报告”去搜索,找出了数百个以“项目总结报告”命名的文件。到底哪个是ERP系统项目的总结报告呢?他需要一个个地打开这些文件夹去确定,这就是因为没有采取合适的命名造成的问题。

    在这个提倡合作的年代,一个非常普遍的现象是:一份文档往往要经过多人修改,最后发送出去的应该是最终修改稿,而实际情况是,经常发送出去的是其中的某个中间稿,甚至是初稿,这样的结果,轻则会 导致重复劳动、工作效率低下,严重的甚至会泄漏商业秘密,造成不应有的损失。

    文件的命名工作是一项基础性的工作,简单但不容易坚持,如果能长期坚持下去就可以明显地提升工作效率。文件命名工作的前提是要确定命名的方法和规则,要根据你的工作类型和习惯确定。

    下面我们来分享一下某家公司的命名规则:

    公司文档命名规则:公司简称-纬度-文档名-日期-版本号,如:KMC-咨询-质量控制-20090318-1.5,意思是KMC公司咨询业务单元质量控制文件,定稿于,版本为1.5.

    公司项目命名规则:年-项目号-客户号-项目名-日期-版本号,如:2009-006-上海世博会组委会-国外市场拓展项目媒体组织-20090416-1.0,意思是该公司2009年第六个项目,上海世博会组委会的海外市场拓展媒体组织,定稿于,版本号为1.0.

    与公司文件命名相比,在个人文件的命名上,可以更简单一些。除了要给自己的工作文件命名,每个人都会从不同的渠道(网上下载、朋友间的共享)得到不少文件,根据文件类型不同采用不同的命名方法。对于工作需要的文件,如果公司有命名规则就按照公司的规则执行,如果公司没有命名规则就根据自己的规则执行。对于自己收集的文件,则要根据自己的文件命名规则执行。

    某出版社编辑对下载的文件,按照一下的方式命名:“标题-机构(或者作者)-分类-类型”,例如他下载的德勒公司演示文稿的模板,是一个ppt文件,他的命名方式是“ppt模板-德勒-个人工具-ppt”,从分类方法上看,他是将ppt模板作为个人的工具,文件的类型为ppt.

    以上的方法其实都很简单,你只需要花两个小时的时间对于自己经常接触和使用的文件进行简单的分析,就可以规划处你的文件夹层次,制定出适合自己的命名规则,而难度仅仅在于如何能坚持下来。在日常工作中对文件进行命名,这看起来比较烦琐,但如果长期上看,这是最有效率的文件管理方式。

    举个例子说明,很多人从网络上下载许多mp3的歌曲,但由于互联网上的歌曲大部分是根据文件上传的时间自动命名的,所以根本看不出到底是什么歌曲和内容。例如笔者在百度上搜索罗大佑《光阴的故事》,在下载后文件名是416d44cee9bf65b4baf77b3.mp3,估计直接保存后没有人能看明白这是什么歌曲,这个时候我就将它的名字修改成“光阴的故事-罗大佑-mp3.mp,加上mp3文件后缀的目的是我要区分这是什么类型的文件,是一个mp3文件还是一个《光阴的故事》的歌词。当然你也可以用文件名的后缀去区分,但从方便使用的角度说,前者效率更高。

    请一定要记住,在你下载文件或者新建文件时,不要只图方便,否则你今天的一时方便会带来明天使用时无穷无尽的麻烦,所以请勤快一些,这对于个人知识保存来说极其重要。

    ----------------------------------------------------------------------

    一、在头脑里把文件的出处(含文件字头和编号等)、用处、保管期限等简单过一下。然后用一小本子记下来。

    二、按照文件出处分类。这样找起来也方便一些。若某些文件有补充的材料也一并归入该文件之中。

    三、按照文件的用处分类,这种分类方法呢不太恰当,因为你在工作中一般情况下不可能只想到某个人的工作去向之后再去找相关的文件吧,所以我建议不是特别重要的文件的话,完全不必采取这种分类方法。

    四、按保管期限分类。这也是一种不太适合你现在工作的文件分类方法。这种方法一般用在涉及国家机密的文件分类方面。

    ---------------------------------------------------------------------------

    ps:大量文件移动后会产生大量的磁盘碎片,最好碎片整理一下。

    126月/120

    韩寒精彩语录

    发布在 邵珠庆

    Q:这是一本怎样的电子杂志?

    A:这是一个精彩文章的分享平台,简称“精分”;不仅精分,而且精简。我们每天选择出不超过1个小时阅读时间的文章,供大家渡过地铁上的上班时间,午休时的时间,以及约会时的尴尬时间。对待不停涌现的热点,我们不强调速度,而强调有趣的视角;对待海量资讯,我们不强调数量,而强调文章的质地。

    Q:真的是《独唱团》的原班人马吗?

    A:从生理角度看,我们的细胞都已经经过了数次分裂再生,所以,我们都已经不是《独唱团》时期的自己了。

    Q:韩寒在一个中是什么地位呢,要做些什么呢?

    A:相当于梅西在巴萨的位置,不过其他成员都是主教练。

    关于一个:复杂世界里,“一个”就够了

    Q:似乎还可以丰富一些,比如加入一首歌曲,一部电影,一个人物,一名球员,一种运动,一个单词,一个成语,综合开来一定更有看头一些?

    A:我觉得我们这电子读物特色是减法,不贪心。当年花心,我妈对我说,“找一个好女孩就够了”。

    Q:《一个》会定期有自己的原创文稿么?而不是像今天一样是《南方周末》的?

    A:会的,我们对好的原创文稿如饥似渴。

    关于页面:亦正亦邪小清新

    Q:你们《一个》的网页是谁做的?很小清新。

    A:我们团队自行设计的。一不小心就风格无邪了。

    关于未来:一个会变成下一个“独唱团”吗?

    Q:对于越来越敏感的中国,有没有担心“一个”也没有了?

    A:经过了《独唱团》之后,我们已经修炼出了什么都不担心的体质。

    Q:开发相应的手机客户端APP吗?

    A:会有的。而且会很快。到时候一个(@one) 会有消息,我们争取在半个月内推出iphone手机及ipad应用。

    Q:一个重点会放在什么地方?社会问题还是偏向风花雪月?

    A:只要是好的文章,无论是硬的或软的,沉重的或轻佻的,安静的或疯狂的,都是“一个”的方向。欢迎大家推荐优质阅读。

    独唱团与“一个”的同与异

    Q:“一个”是否等于“独”?那么《一个》是《独唱团》的续集吗?还是截然不同的?

    A:“独唱团”和“一个”是精神上的双胞胎。

    Q:一个跟大家见面了,那么独唱团的演唱会什么时候开始呢?

    A:目前我们都已经把乐器搬到了办公室排练着,争取今年出一个MV,明年成员们都依然容颜姣好的话,就玩一个演唱会。

    Q:《一个ONE》还会有以前独唱团未完待续的文章么?

    A:会有的,这周应该就会有。在这里也向仍有稿件储存在我们这里的作者们致谢,你们默默等了这么久,不但没有追杀编辑,连一句牢骚都不发,令我们非常感动。

    86月/120

    PHP CURL详解

    发布在 邵珠庆



    目前为目最全的CURL中文说明了,学PHP的要好好掌握.有很多的参数.大部份都很有用.真正掌握了它和正则,一定就是个采集高手了.

    PHP中的CURL函数库(Client URL Library Function)

    curl_close — 关闭一个curl会话

    curl_copy_handle — 拷贝一个curl连接资源的所有内容和参数

    curl_errno — 返回一个包含当前会话错误信息的数字编号

    curl_error — 返回一个包含当前会话错误信息的字符串

    curl_exec — 执行一个curl会话

    curl_getinfo — 获取一个curl连接资源句柄的信息

    curl_init — 初始化一个curl会话

    curl_multi_add_handle — 向curl批处理会话中添加单独的curl句柄资源

    curl_multi_close — 关闭一个批处理句柄资源

    curl_multi_exec — 解析一个curl批处理句柄

    curl_multi_getcontent — 返回获取的输出的文本流

    curl_multi_info_read — 获取当前解析的curl的相关传输信息

    curl_multi_init — 初始化一个curl批处理句柄资源

    curl_multi_remove_handle — 移除curl批处理句柄资源中的某个句柄资源

    curl_multi_select — Get all the sockets associated with the cURL extension, which can then be "selected"

    curl_setopt_array — 以数组的形式为一个curl设置会话参数

    curl_setopt — 为一个curl设置会话参数

    curl_version — 获取curl相关的版本信息

    curl_init()函数的作用初始化一个curl会话,curl_init()函数唯一的一个参数是可选的,表示一个url地址。

    curl_exec()函数的作用是执行一个curl会话,唯一的参数是curl_init()函数返回的句柄。

    curl_close()函数的作用是关闭一个curl会话,唯一的参数是curl_init()函数返回的句柄。

    <?php

    $ch = curl_init("http://www.baidu.com/");

    curl_exec($ch);

    curl_close($ch);

    ?>

    curl_version()函数的作用是获取curl相关的版本信息,curl_version()函数有一个参数,不清楚是做什么的

    <?php

    print_r(curl_version())

    ?>

    curl_getinfo()函数的作用是获取一个curl连接资源句柄的信息,curl_getinfo()函数有两个参数,第一个参数是curl的资源句柄,第二个参数是下面一些常量:

    <?php

    $ch = curl_init("http://www.baidu.com/");

    print_r(curl_getinfo($ch));

    ?>

    可选的常量包括:

    CURLINFO_EFFECTIVE_URL

    最后一个有效的url地址

    CURLINFO_HTTP_CODE

    最后一个收到的HTTP代码

    CURLINFO_FILETIME

    远程获取文档的时间,如果无法获取,则返回值为“-1”

    CURLINFO_TOTAL_TIME

    最后一次传输所消耗的时间

    CURLINFO_NAMELOOKUP_TIME

    名称解析所消耗的时间

    CURLINFO_CONNECT_TIME

    建立连接所消耗的时间

    CURLINFO_PRETRANSFER_TIME

    从建立连接到准备传输所使用的时间

    CURLINFO_STARTTRANSFER_TIME

    从建立连接到传输开始所使用的时间

    CURLINFO_REDIRECT_TIME

    在事务传输开始前重定向所使用的时间

    CURLINFO_SIZE_UPLOAD

    上传数据量的总值

    CURLINFO_SIZE_DOWNLOAD

    下载数据量的总值

    CURLINFO_SPEED_DOWNLOAD

    平均下载速度

    CURLINFO_SPEED_UPLOAD

    平均上传速度

    CURLINFO_HEADER_SIZE

    header部分的大小

    CURLINFO_HEADER_OUT

    发送请求的字符串

    CURLINFO_REQUEST_SIZE

    在HTTP请求中有问题的请求的大小

    CURLINFO_SSL_VERIFYRESULT

    Result of SSL certification verification requested by setting CURLOPT_SSL_VERIFYPEER

    CURLINFO_CONTENT_LENGTH_DOWNLOAD

    从Content-Length: field中读取的下载内容长度

    CURLINFO_CONTENT_LENGTH_UPLOAD

    上传内容大小的说明

    CURLINFO_CONTENT_TYPE

    下载内容的“Content-type”值,NULL表示服务器没有发送有效的“Content-Type: header”

    curl_setopt()函数的作用是为一个curl设置会话参数。curl_setopt_array()函数的作用是以数组的形式为一个curl设置会话参数。

    <?php

    $ch = curl_init();

    $fp = fopen("example_homepage.txt", "w");

    curl_setopt($ch, CURLOPT_FILE, $fp);

    $options = array(

     
    CURLOPT_URL => 'http://www.baidu.com/',

     
    CURLOPT_HEADER => false

     
    );

    curl_setopt_array($ch, $options);

    curl_exec($ch);

    curl_close($ch);

    fclose($fp);

    ?>

    可设置的参数有:

    CURLOPT_AUTOREFERER

    自动设置header中的referer信息

    CURLOPT_BINARYTRANSFER

    在启用CURLOPT_RETURNTRANSFER时候将获取数据返回

    CURLOPT_COOKIESESSION

    启用时curl会仅仅传递一个session cookie,忽略其他的cookie,默认状况下curl会将所有的cookie返回给服务端。session cookie是指那些用来判断服务器端的session是否有效而存在的cookie。

    CURLOPT_CRLF

    启用时将Unix的换行符转换成回车换行符。

    CURLOPT_DNS_USE_GLOBAL_CACHE

    启用时会启用一个全局的DNS缓存,此项为线程安全的,并且默认为true。

    CURLOPT_FAILONERROR

    显示HTTP状态码,默认行为是忽略编号小于等于400的HTTP信息

    CURLOPT_FILETIME

    启用时会尝试修改远程文档中的信息。结果信息会通过curl_getinfo()函数的CURLINFO_FILETIME选项返回。

    CURLOPT_FOLLOWLOCATION

    启用时会将服务器服务器返回的“Location:”放在header中递归的返回给服务器,使用CURLOPT_MAXREDIRS可以限定递归返回的数量。

    CURLOPT_FORBID_REUSE

    在完成交互以后强迫断开连接,不能重用。

    CURLOPT_FRESH_CONNECT

    强制获取一个新的连接,替代缓存中的连接。

    CURLOPT_FTP_USE_EPRT

    TRUE to use EPRT (and LPRT) when doing active FTP downloads. Use FALSE to disable EPRT and LPRT and use PORT only.

    Added in PHP 5.0.0.

    CURLOPT_FTP_USE_EPSV

    TRUE to first try an EPSV command for FTP transfers before reverting back to PASV. Set to FALSE to disable EPSV.

    CURLOPT_FTPAPPEND

    TRUE to append to the remote file instead of overwriting it.

    CURLOPT_FTPASCII

    An alias of CURLOPT_TRANSFERTEXT. Use that instead.

    CURLOPT_FTPLISTONLY

    TRUE to only list the names of an FTP directory.

    CURLOPT_HEADER

    启用时会将头文件的信息作为数据流输出。

    CURLOPT_HTTPGET

    启用时会设置HTTP的method为GET,因为GET是默认是,所以只在被修改的情况下使用。

    CURLOPT_HTTPPROXYTUNNEL

    启用时会通过HTTP代理来传输。

    CURLOPT_MUTE

    讲curl函数中所有修改过的参数恢复默认值。

    CURLOPT_NETRC

    在连接建立以后,访问~/.netrc文件获取用户名和密码信息连接远程站点。

    CURLOPT_NOBODY

    启用时将不对HTML中的body部分进行输出。

    CURLOPT_NOPROGRESS

    启用时关闭curl传输的进度条,此项的默认设置为true

    CURLOPT_NOSIGNAL

    启用时忽略所有的curl传递给php进行的信号。在SAPI多线程传输时此项被默认打开。

    CURLOPT_POST

    启用时会发送一个常规的POST请求,类型为:application/x-www-form-urlencoded,就像表单提交的一样。

    CURLOPT_PUT

    启用时允许HTTP发送文件,必须同时设置CURLOPT_INFILE和CURLOPT_INFILESIZE

    CURLOPT_RETURNTRANSFER

    讲curl_exec()获取的信息以文件流的形式返回,而不是直接输出。

    CURLOPT_SSL_VERIFYPEER

    FALSE to stop cURL from verifying the peer's certificate. Alternate certificates to verify against can be specified with the CURLOPT_CAINFO option or a certificate directory can be specified with the CURLOPT_CAPATH option. CURLOPT_SSL_VERIFYHOST may also need to be TRUE or FALSE if CURLOPT_SSL_VERIFYPEER is disabled (it defaults to 2). TRUE by default as of cURL 7.10. Default bundle installed as of cURL 7.10.

    CURLOPT_TRANSFERTEXT

    TRUE to use ASCII mode for FTP transfers. For LDAP, it retrieves data in plain text instead of HTML. On Windows systems, it will not set STDOUT to binary mode.

    CURLOPT_UNRESTRICTED_AUTH

    在使用CURLOPT_FOLLOWLOCATION产生的header中的多个locations中持续追加用户名和密码信息,即使域名已发生改变。

    CURLOPT_UPLOAD

    启用时允许文件传输

    CURLOPT_VERBOSE

    启用时会汇报所有的信息,存放在STDERR或指定的CURLOPT_STDERR中

    CURLOPT_BUFFERSIZE

    每次获取的数据中读入缓存的大小,这个值每次都会被填满。

    CURLOPT_CLOSEPOLICY

    不是CURLCLOSEPOLICY_LEAST_RECENTLY_USED就是CURLCLOSEPOLICY_OLDEST,还存在另外三个,但是curl暂时还不支持。.

    CURLOPT_CONNECTTIMEOUT

    在发起连接前等待的时间,如果设置为0,则不等待。

    CURLOPT_DNS_CACHE_TIMEOUT

    设置在内存中保存DNS信息的时间,默认为120秒。

    CURLOPT_FTPSSLAUTH

    The FTP authentication method (when is activated): CURLFTPAUTH_SSL (try SSL first), CURLFTPAUTH_TLS (try TLS first), or CURLFTPAUTH_DEFAULT (let cURL decide).

    CURLOPT_HTTP_VERSION

    设置curl使用的HTTP协议,CURL_HTTP_VERSION_NONE(让curl自己判断),CURL_HTTP_VERSION_1_0(HTTP/1.0),CURL_HTTP_VERSION_1_1(HTTP/1.1)

    CURLOPT_HTTPAUTH

    使用的HTTP验证方法,可选的值有:CURLAUTH_BASIC,CURLAUTH_DIGEST,CURLAUTH_GSSNEGOTIATE,CURLAUTH_NTLM,CURLAUTH_ANY,CURLAUTH_ANYSAFE,可以使用“|”操作符分隔多个值,curl让服务器选择一个支持最好的值,CURLAUTH_ANY等价于CURLAUTH_BASIC | CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM,CURLAUTH_ANYSAFE等价于CURLAUTH_DIGEST | CURLAUTH_GSSNEGOTIATE | CURLAUTH_NTLM

    CURLOPT_INFILESIZE

    设定上传文件的大小

    CURLOPT_LOW_SPEED_LIMIT

    当传输速度小于CURLOPT_LOW_SPEED_LIMIT时,PHP会根据CURLOPT_LOW_SPEED_TIME来判断是否因太慢而取消传输。

    CURLOPT_LOW_SPEED_TIME

    The number of seconds the transfer should be below CURLOPT_LOW_SPEED_LIMIT for PHP to consider the transfer too slow and abort.

    当传输速度小于CURLOPT_LOW_SPEED_LIMIT时,PHP会根据CURLOPT_LOW_SPEED_TIME来判断是否因太慢而取消传输。

    CURLOPT_MAXCONNECTS

    允许的最大连接数量,超过是会通过CURLOPT_CLOSEPOLICY决定应该停止哪些连接

    CURLOPT_MAXREDIRS

    指定最多的HTTP重定向的数量,这个选项是和CURLOPT_FOLLOWLOCATION一起使用的。

    CURLOPT_PORT

    一个可选的用来指定连接端口的量

    CURLOPT_PROXYAUTH

    The HTTP authentication method(s) to use for the proxy connection. Use the same bitmasks as described in CURLOPT_HTTPAUTH. For proxy authentication, only CURLAUTH_BASIC and CURLAUTH_NTLM are currently supported.

    CURLOPT_PROXYPORT

    The port number of the proxy to connect to. This port number can also be set in CURLOPT_PROXY.

    CURLOPT_PROXYTYPE

    Either CURLPROXY_HTTP (default) or CURLPROXY_SOCKS5.

    CURLOPT_RESUME_FROM

    在恢复传输时传递一个字节偏移量(用来断点续传)

    CURLOPT_SSL_VERIFYHOST

    1 to check the existence of a common name in the SSL peer certificate.

    2 to check the existence of a common name and also verify that it matches the hostname provided.

    CURLOPT_SSLVERSION

    The SSL version (2 or 3) to use. By default PHP will try to determine this itself, although in some cases this must be set manually.

    CURLOPT_TIMECONDITION

    如果在CURLOPT_TIMEVALUE指定的某个时间以后被编辑过,则使用CURL_TIMECOND_IFMODSINCE返回页面,如果没有被修改过,并且CURLOPT_HEADER为true,则返回一个"304 Not Modified"的header,CURLOPT_HEADER为false,则使用CURL_TIMECOND_ISUNMODSINCE,默认值为CURL_TIMECOND_IFMODSINCE

    CURLOPT_TIMEOUT

    设置curl允许执行的最长秒数

    CURLOPT_TIMEVALUE

    设置一个CURLOPT_TIMECONDITION使用的时间戳,在默认状态下使用的是CURL_TIMECOND_IFMODSINCE

    CURLOPT_CAINFO

    The name of a file holding one or more certificates to verify the peer with. This only makes sense when used in combination with CURLOPT_SSL_VERIFYPEER.

    CURLOPT_CAPATH

    A directory that holds multiple CA certificates. Use this option alongside CURLOPT_SSL_VERIFYPEER.

    CURLOPT_COOKIE

    设定HTTP请求中“Set-Cookie:”部分的内容。

    CURLOPT_COOKIEFILE

    包含cookie信息的文件名称,这个cookie文件可以是Netscape格式或者HTTP风格的header信息。

    CURLOPT_COOKIEJAR

    连接关闭以后,存放cookie信息的文件名称

    CURLOPT_CUSTOMREQUEST

    A custom request method to use instead of "GET" or "HEAD" when doing a HTTP request. This is useful for doing "DELETE" or other, more obscure HTTP requests. Valid values are things like "GET", "POST", "CONNECT" and so on; i.e. Do not enter a whole HTTP request line here. For instance, entering "GET /index.html HTTP/1.0rnrn" would be incorrect.

    Note: Don't do this without making sure the server supports the custom request method first.

    CURLOPT_EGBSOCKET

    Like CURLOPT_RANDOM_FILE, except a filename to an Entropy Gathering Daemon socket.

    CURLOPT_ENCODING

    header中“Accept-Encoding: ”部分的内容,支持的编码格式为:"identity","deflate","gzip"。如果设置为空字符串,则表示支持所有的编码格式

    CURLOPT_FTPPORT

    The value which will be used to get the IP address to use for the FTP "POST" instruction. The "POST" instruction tells the remote server to connect to our specified IP address. The string may be a plain IP address, a hostname, a network interface name (under Unix), or just a plain '-' to use the systems default IP address.

    CURLOPT_INTERFACE

    在外部网络接口中使用的名称,可以是一个接口名,IP或者主机名。

    CURLOPT_KRB4LEVEL

    KRB4(Kerberos 4)安全级别的设置,可以是一下几个值之一:"clear","safe","confidential","private"。默认的值为"private",设置为null的时候表示禁用KRB4,现在KRB4安全仅能在FTP传输中使用。

    CURLOPT_POSTFIELDS

    在HTTP中的“POST”操作。如果要传送一个文件,需要一个@开头的文件名

    CURLOPT_PROXY

    设置通过的HTTP代理服务器

    CURLOPT_PROXYUSERPWD

    连接到代理服务器的,格式为“[username]:[password]”的用户名和密码。

    CURLOPT_RANDOM_FILE

    设定存放SSL用到的随机数种子的文件名称

    CURLOPT_RANGE

    设置HTTP传输范围,可以用“X-Y”的形式设置一个传输区间,如果有多个HTTP传输,则使用逗号分隔多个值,形如:"X-Y,N-M"。

    CURLOPT_REFERER

    设置header中"Referer: " 部分的值。

    CURLOPT_SSL_CIPHER_LIST

    A list of ciphers to use for SSL. For example, RC4-SHA and TLSv1 are valid cipher lists.

    CURLOPT_SSLCERT

    传递一个包含PEM格式证书的字符串。

    CURLOPT_SSLCERTPASSWD

    传递一个包含使用CURLOPT_SSLCERT证书必需的密码。

    CURLOPT_SSLCERTTYPE

    The format of the certificate. Supported formats are "PEM" (default), "DER", and "ENG".

    CURLOPT_SSLENGINE

    The identifier for the crypto engine of the private SSL key specified in CURLOPT_SSLKEY.

    CURLOPT_SSLENGINE_DEFAULT

    The identifier for the crypto engine used for asymmetric crypto operations.

    CURLOPT_SSLKEY

    The name of a file containing a private SSL key.

    CURLOPT_SSLKEYPASSWD

    The secret password needed to use the private SSL key specified in CURLOPT_SSLKEY.

    Note: Since this option contains a sensitive password, remember to keep the PHP script it is contained within safe.

    CURLOPT_SSLKEYTYPE

    The key type of the private SSL key specified in CURLOPT_SSLKEY. Supported key types are "PEM" (default), "DER", and "ENG".

    CURLOPT_URL

    需要获取的URL地址,也可以在PHP的curl_init()函数中设置。

    CURLOPT_USERAGENT

    在HTTP请求中包含一个”user-agent”头的字符串。

    CURLOPT_USERPWD

    传递一个连接中需要的用户名和密码,格式为:“[username]:[password]”。

    CURLOPT_HTTP200ALIASES

    设置不再以error的形式来处理HTTP 200的响应,格式为一个数组。

    CURLOPT_HTTPHEADER

    设置一个header中传输内容的数组。

    CURLOPT_POSTQUOTE

    An array of FTP commands to execute on the server after the FTP request has been performed.

    CURLOPT_QUOTE

    An array of FTP commands to execute on the server prior to the FTP request.

    CURLOPT_FILE

    设置输出文件的位置,值是一个资源类型,默认为STDOUT (浏览器)。

    CURLOPT_INFILE

    在上传文件的时候需要读取的文件地址,值是一个资源类型。

    CURLOPT_STDERR

    设置一个错误输出地址,值是一个资源类型,取代默认的STDERR。

    CURLOPT_WRITEHEADER

    设置header部分内容的写入的文件地址,值是一个资源类型。

    CURLOPT_HEADERFUNCTION

    设置一个回调函数,这个函数有两个参数,第一个是curl的资源句柄,第二个是输出的header数据。header数据的输出必须依赖这个函数,返回已写入的数据大小。

    CURLOPT_PASSWDFUNCTION

    设置一个回调函数,有三个参数,第一个是curl的资源句柄,第二个是一个密码提示符,第三个参数是密码长度允许的最大值。返回密码的值。

    CURLOPT_READFUNCTION

    设置一个回调函数,有两个参数,第一个是curl的资源句柄,第二个是读取到的数据。数据读取必须依赖这个函数。返回读取数据的大小,比如0或者EOF。

    CURLOPT_WRITEFUNCTION

    设置一个回调函数,有两个参数,第一个是curl的资源句柄,第二个是写入的数据。数据写入必须依赖这个函数。返回精确的已写入数据的大小

    curl_copy_handle()函数的作用是拷贝一个curl连接资源的所有内容和参数

    <?php

    $ch = curl_init("http://www.baidu.com/");

    $another = curl_copy_handle($ch);

    curl_exec($another);

    curl_close($another);

    ?>

    curl_error()函数的作用是返回一个包含当前会话错误信息的字符串。

    curl_errno()函数的作用是返回一个包含当前会话错误信息的数字编号。

    curl_multi_init()函数的作用是初始化一个curl批处理句柄资源。

    curl_multi_add_handle()函数的作用是向curl批处理会话中添加单独的curl句柄资源。curl_multi_add_handle()函数有两个参数,第一个参数表示一个curl批处理句柄资源,第二个参数表示一个单独的curl句柄资源。

    curl_multi_exec()函数的作用是解析一个curl批处理句柄,curl_multi_exec()函数有两个参数,第一个参数表示一个批处理句柄资源,第二个参数是一个引用值的参数,表示剩余需要处理的单个的curl句柄资源数量。

    curl_multi_remove_handle()函数表示移除curl批处理句柄资源中的某个句柄资源,curl_multi_remove_handle()函数有两个参数,第一个参数表示一个curl批处理句柄资源,第二个参数表示一个单独的curl句柄资源。

    curl_multi_close()函数的作用是关闭一个批处理句柄资源。

    <?php

    $ch1 = curl_init();

    $ch2 = curl_init();

    curl_setopt($ch1, CURLOPT_URL, "http://www.baidu.com/");

    curl_setopt($ch1, CURLOPT_HEADER, 0);

    curl_setopt($ch2, CURLOPT_URL, "http://www.google.com/");

    curl_setopt($ch2, CURLOPT_HEADER, 0);

    $mh = curl_multi_init();

    curl_multi_add_handle($mh,$ch1);

    curl_multi_add_handle($mh,$ch2);

    do {

     
    curl_multi_exec($mh,$flag);

    } while ($flag > 0);

    curl_multi_remove_handle($mh,$ch1);

    curl_multi_remove_handle($mh,$ch2);

    curl_multi_close($mh);

    ?>

    curl_multi_getcontent()函数的作用是在设置了CURLOPT_RETURNTRANSFER的情况下,返回获取的输出的文本流。

    curl_multi_info_read()函数的作用是获取当前解析的curl的相关传输信息。

    curl_multi_select()

    Get all the sockets associated with the cURL extension, which can then be "selected"

       下一页