摘要:.htaccess 文件是 Apache 等网页服务器使用的基于目录的配置文件。要使用它,首先需要修改httpd.conf,启用 AllowOverride 选项。设置完成后我们就可以在某个目录里新建一个 .htaccess 文件,利用它设置该目录及其子目录的一些选项。这里列举一些常见的设置方式。一、设置目录的 index 文件DirectoryIndex index.php index.html index.htm这个设置将使得服务器按照上面的顺序查找文件作为 index 文件。二、设置错误页面ErrorDocument 404 /error.html这个设置将使得用户访问不存在的页面是返回
阅读全文
01 2013 档案
摘要:在大多数浏览器中,我们可以使用 console 对象往控制台记录各种信息,以方便发现 JavaScript 的问题。IE 按 F12,Firefox 按 Ctrl+Shift+K,Chrome 按 Ctrl+Shift+J,Opera 按 Ctrl+Shift+I,Safari 按 Ctrl+Alt+I,可以打开控制台查看所记录的信息。注意 IE6 和 IE7 没有 console 可以使用,而 IE8 和 IE9 中虽然有 console,但是必须先打开才能使用,否则会出错。控制台函数中最常用的是 console.log(),console.info(),console.warn() 和 c
阅读全文
摘要:1. CREATE 创建命令创建新数据库 mydb:CREATE DATABASE mydb;选择数据库 mydb:USE mydb;在当前数据库中创建数据表 table1:CREATE TABLE IF NOT EXISTS `table1`( fileid int NOT NULL AUTO_INCREMENT, PRIMARY KEY(fileid), size int, content mediumtext collate utf8_bin, name varchar(63) collate utf8_bin, from varchar(15) co...
阅读全文
摘要:在 PHP 中使用 MySQL 数据库,第一步是用 mysql_connect 函数连接数据库:$con = mysql_connect($server, $username, $password);其中 $server 是 mysql 服务器地址'localhost:3306'。$username 和 $password 分别是用户名和密码。这个函数的返回值是一个 mysql连接标识。接下来是用 mysql_select_db 函数选择使用的数据库:mysql_select_db($database, $con);接着就可以用 mysql_query 函数查询数据了:$sql
阅读全文
摘要:在 PHP 中获取用户 IP 地址,首先需要看看 $_SERVER['REMOTE_ADDR'] 变量。使用这个变量在很多情况下是可行的。使用的代码如下:$realip = $_SERVER['REMOTE_ADDR'];但是,如果用户通过代理访问网站,或者网站处于反向代理后面(如果网站托管在 AppFog,OpenShift 等云平台上,通常会是这种情形),这个变量的信息就不正确了。这时候,我们需要通过 $_SERVER['HTTP_X_FORWARDED_FOR'] 变量来得到用户的真实 IP 地址。由于代理可能有多个,这个变量是由用多个 I
阅读全文
摘要:云计算(Cloud Computing)是一种基于互联网的计算方式,它的最大特点就是:按需使用,无需维护。按照云计算的层次可以分为云架构(IaaS,Infrastructure as a Service),云平台(PaaS,Platform as a Service)和云软件(SaaS,Software as a Service)。云架构提供了最基础的计算资源,比如硬盘,内存,带宽等;它的最典型的例子是 Amazon EC2。云平台提供了操作系统,编程语言和数据库等,一般提供给开发人员使用,它的典型例子有 Google App Engine,Windows Azure Compute,Clou
阅读全文
摘要:在 ECMAScript 5 中,与对象的属性有关的方法有这些:Object.prototype.hasOwnProperty,Object.defineProperty,Object.defineProperties,Object.getOwnPropertyNames 和Object.getOwnPropertyDescriptor。除了第一个在 ECMAScript 3 中就已经出现,其它的都是新增的方法。Object.prototype.hasOwnProperty方法用于检测某个属性是对象自己的,还是从原型中继承来的。例如:o = {abc: 123};console.log(o.h
阅读全文
摘要:在 ECMAScript 5 中,对 Array 增加了几个原型方法,包括 indexOf 和 lastIndexOf 这两个定位方法,以及 every,some,forEach,filter,map,reduce 和 reduceRight 这几个迭代方法。Array.prototype.indexOf 和 Array.prototype.lastIndexOf 这两个方法用于在数组中查找一个元素,如果找到则返回该元素所在位置,否则返回 -1。两者的区别在于前者从最前面开始查找,而后者从最后面开始查找。例如:var arr = ['red', 'green',
阅读全文
摘要:jQuery 是个很流行的 JavaScript 库,最近研究了下,尝试写一个 jQuery 对象的简化山寨版,命名为 jsquick。jQuery 这个对象也不简单,因此我们首先实现 $.each 和 $.extend 这两个最基本的功能。代码如下:(function(){ var jsquick = { each: function(collection, callback) { var i, arr = []; if (Object.prototype.toString.call(collection) !== "[object Array]") { ...
阅读全文
摘要:一、基本使用在 JavaScript 中,可以用下面的两种方法来创建一个正则表达式(RegExp)对象:var re = /fox/;var re = new RegExp("fox");创建了 RegExp 对象后,就可以用 test() 方法来检测某个字符串是否匹配。例如:var re = /fox/;var str = "The quick brown fox jumps over the lazy dog";alert(re.test(str)); // true test() 方法根据字符串是否匹配该正则表达式,返回 true 或者 false
阅读全文
摘要:在 JavaScript 中,function 和 array 也是 object,所以它们也可以当成 object 来使用。例如:var fun = function(){};fun.key = "dog";var arr = new Array();arr.key = "cat";console.log(fun.key); // dogconsole.log(arr.key); // cat类似地,我们也可以用 function 和 object 当成 array 来使用,例如:var fun = function(){};fun[1] = &quo
阅读全文
摘要:在 JavaScript 中,typeof 和 instanceof 这两个操作符都可以用于区分不同的变量。这里总结一下。typeof用于检测数据类型,它的基本用法如下面的例子:var u;var b = true;var i = 1234;var s = "abc";var f = function(){};var n = null;var o = {key: "value"};var a = [1, 2, 3];console.log(typeof u); // undefinedconsole.log(typeof b); // booleanco
阅读全文
摘要:JavaScript 中 caller,callee,call,apply 这几个涉及到函数调用的概念,这里总结一下。callee 是函数的 arguments 对象的一个属性,指代当前这个函数。利用 arguments.callee,我们可以让函数递归的调用自己,而不用总是写出这个函数的名字。例如:function factorial (n) { return !(n > 1) ? 1 : arguments.callee(n - 1) * n;}caller 是 Function 对象的一个属性,指代调用当前函数的函数;如果当前函数在顶层,caller 就是 null。例如funct
阅读全文
摘要:IE,特别是旧版本的 IE6 和 IE7,问题多如牛毛。为了减少问题,首先要做的就是选择一个标准的 doctype,比如 html5 的 doctype 如下:<!DOCTYPE html>这些标准的 doctype 将使得 IE 用(几乎)标准的模式来渲染页面,比如将使用 W3C 的盒模型而不是 IE 自己的盒模型,这样兼容性的问题就少很多了。但是还没完,IE 还有其它的 Bugs。例如之前就遇到过 IE6 的 overflow bug。即,对于 position: relative 的子元素,父元素即使设置 overflow 为 auto 或者 hidden,子元素还是溢出了。
阅读全文
摘要:在 W3C CSS 2.1 标准中,BFC(block formatting context,块级格式化范围)规定了浏览器如何渲染块级元素及其浮动。具体来说,对下面这些元素将创建一个 BFC:float 值不为 none 的元素overflow 值不为 visible 的元素position 值为 absolute 或 fixed 的元素display 值为 inline-block,table-cell 或table-caption 的元素创建了 BFC 的元素,将作为一个整体来渲染,即它会框住它的子元素,使得子元素不会影响外面其它元素的布局。具体来说是 BFC 元素有如下这些特点:BFC
阅读全文
摘要:IE6 和 IE7 等旧版本 IE 已经开始慢慢退出舞台了,但现在还是需要支持它。利用 IETester 这个工具,我们可以同时测试页面在 IE6,IE7,IE8,IE9,IE10 的显示效果,非常方便。目前 IETester 的版本为 0.4.12,安装后运行它,选择新建 IE 各版本的标签页,就可以查看显示效果了。另外安装该公司的 DebugBar,就可以在 IETester 中调试各版本的 IE了。IETester 的最大问题在于不是很稳定,在 Windows 7 中使用时不时的崩溃,只能凑合着使用。另外,按照该软件主页的介绍,IETester 还有如下这些限制:The Previous
阅读全文
摘要:JavaScript 的原型(prototype)及其实例是不容易理解的东西,这里总结一下。一、原型与实例先看下面的例子:function Foo(value) { this.name = value; this.prototype.type = "example";}var foo1 = new Foo("hello");var foo2 = new Foo("world");在这个例子中,总共出现三种不同的东西:Foo 是构造函数(constructor),通过使用 new 关键字,我们调用这个构造函数,从 Foo.prototy
阅读全文
摘要:JavaScript 中的字符串编解码函数主要有 escape 与 unescape,encodeURI 与 decodeURI,以及 encodeURIcomponent 与 decodeURIcomponent 这三种。这几个函数都不对 ASCII 的字母和数字进行编码。escape 函数不编码* + - . / @ _ 这几个字符,将中文编码为形如 %u4E2D 的形式,其中4E2D 是“中”字的 UTF-16 编码。这个函数已经在ECMAScript v3 中废弃。encodeURI 函数不编码 ! '( )* - . _ ~ 以及 # $ & + , / ; : =
阅读全文

浙公网安备 33010602011771号