摘要:PHP 中的错误有如下这些类型(这个表格的内容取自 PHP 文档): 值 常量 说明 备注 1E_ERROR致命的运行时错误。这类错误一般是不可恢复的情况,例如内存分配导致的问题。后果是导致脚本终止不再继续运行。2E_WARNING运行时警告 (非致命错误)。仅给出提示信息,但是脚本不会终止运行。4E_PARSE编译时语法解析错误。解析错误仅仅由分析器产生。8E_NOTICE运行时通知。表示脚本遇到可能会表现为错误的情况,但是在可以正常运行的脚本里面也可能会有类似的通知。16E_CORE_ERROR在 PHP 初始化启动过程中发生的致命错误。该错误类似 E_ERROR,但是是由 PHP ...
阅读全文
02 2013 档案
摘要:WAMP 指的是在 Windows 上的 Apache,MySQL 和 PHP 服务器环境。这几个软件都有 Windows 的二进制安装包,因此安装应该问题不大。这里主要总结安装后的一些配置过程。1. Apache 网页服务器Apache 的配置文件是 httpd.conf。该文件中经常需要修改的内容是下面这几个:Listen 80ServerTokens ProdLoadModule php5_module "c:/wamp/bin/php/php5.4.3/php5apache2_4.dll"DocumentRoot "c:/wamp/www/"&l
阅读全文
摘要:PHP 中提供了三种访问 MySQL 数据库的扩展,即 mysql,mysqli 和 PDO。它们的区别可以比较如下:扩展mysqlmysqliPDOPHP 版本2.0+5.0+5.1+生命周期废弃活跃活跃面向对象语法否是是过程式语法是是否服务器端预处理语句否是是客户端预处理语句否否是上面所说的预处理语句就是用于参数化查询的。可以看到,除了旧的 mysql 扩展不支持,mysqli 和 PDO 这两个新扩展都支持参数化查询。PDO 扩展相比 mysqli 扩展的好处是,它是与关系数据库类型无关的,因此很方便切换数据库,比如从 MySQL 切换到 PostgreSQL。首先我们来看看利用 mys
阅读全文
摘要:微软的 SkyDrive 网盘提供了 RESTful API,而且提供了 JavaScript 库,很方便在第三方网站中使用。要使用 SkyDrive API,首先需要到Live Connect Developer Center 添加你的应用。在这个网站中点击“My apps”,就可以添加你的应用。在应用中,Client ID 和 Redirect domain 这两项是我们后面要用到的。要在我们的网站 http://example.com 中使用 SkyDrive,需要在网页中载入 wl.js,如下:<script type="text/javascript" sr
阅读全文
摘要:Markdown 是一种易读易写的纯文本的语言格式,而且很方便转换为 HTML 格式。这里总结下它的基本语法规则。1. 段落和换行Markdown 的各个段落用一个或多个空行来分开,段落内部的换行将解释为一个空白。2. 标题Markdown 中用 # 号包含起来的文本是标题,# 号的个数对应标题的层次,即 <h1> 到 <h6>3. 列表无序列表的各项可以用 * 号,+ 号或者 - 号来表示。例如:* Red* Green* Blue有序列表的各项用数字加句点来表示。例如:1. Red2. Green3. Blue4. 代码区块用反引号包括的文本将被转换为 <co
阅读全文
摘要:服务器的 SQL 数据区查询字符串如果不仔细写,就很容易导致 SQL 注入攻击。例如$query = "SELECT * FROM users WHERE (name = '" + $username + "') and (password = '"+ $password +"');"如果恶意用户提交下面的字符串作为用户名和密码:$username = "' OR '1'='1";$password = "' OR '1
阅读全文
摘要:在 JavaScript 中,一个语句(statement)以分号结尾。如果省略分号,则按照 ECMAScript 的规范来确定语句的结尾。在 ECMAScript 规范说明,对于下列这些语句,如果没有分号,解析器将会自动添加分号到合适的位置:空语句变量语句表达式语句do-while 语句continue 语句break 语句return 语句throw 语句分号自动添加的规则有如下三条:一、解析器碰到文件的结尾。二、解析器遇到不合语法的符号(token),而且 (a) 这个符号和前面的符号之间有换行符;或者 (b) 这个符号就是 }。三、解析器遇到下列五种 restricted produc
阅读全文
摘要:FireSheep 是两年前的一个 Firefox 扩展,用于演示 HTTP 的会话劫持。现在仍然有很多网站,比如 cnblogs 没使用 HTTPS 连接。因此这种方式仍然有效。FireSheep 依赖WinPcap,安装了 WinPcap 之后,安装 FireSheep 时发现,Firefox 版本太高无法使用。我们可以到 PortableApps 网站下载 3.6 版本的绿色版 Firefox。在 Firefox 3.6 中安装并打开 FireSheep,然后可以在选项添加一个 cnblogs 网站,在脚本处填上下面代码:register({ name: "cnblogs&qu
阅读全文
摘要:几个 inline-block 元素,比如 button,如果在 HTML 中连续写在一起,则它们之间可以没有空隙。但是如果在 HTML 中将它们分行格式化,则它们之间有空隙。例如:<!DOCTYPE html><html><head><style type="text/css">button { margin: 0; border: 1px solid gray;}</style></head><body><div><button>One</button>
阅读全文
摘要:如果在一行中即有小图片,又有文字,这时候图片和文字的对齐一般就需要仔细设置。其中用到的最重要的 CSS 属性是 vertical-align。假设我们的 HTML 代码如下:<div id="test">Hello <img src="http://static.cnblogs.com/favicon.ico" width="16" height="16" class="favimage"> Image!</div>vertical-align 的取值主要有
阅读全文
摘要:在介绍 CSS 的 line-height 属性之前,我们先来看看 height 属性。height 属性适用于大部分元素,除了行内非替换元素(replaced inline element)。所谓的替换元素,就是指 ,,,,,, 等默认就有一定大小的元素。因此,行内非替换元素,比如 ,, 等,将无法设置 height 属性,它们的高度由字体大小决定。元素的 height 属性的取值可以是长度值或者比例值。如果是比例值,则根据它所在的包含块(containing block)的高度来计算。height 属性的默认值为 auto,此时将根据它的子元素的大小来确定。元素的行高(line-heigh
阅读全文
摘要:网格化布局(Grid Layout)是一种页面设计方式,它将整个页面分成同等大小的若干小格,然后让各部分内容分别占用若干个小格。这样设计出来的页面,整齐有序,容易阅读。实际上,网格化布局早就在其它地方使用,最典型的例子是报纸的页面设计。虽然一张报纸的内容很多,但是拿起来看却不觉得乱,就要归功于这种布局方式。在网格化布局中,最常见的是 960px 宽度的布局,这是因为对于现在的大部分电脑,屏幕分辨率宽度已经至少有 1024 了;而且 960 是一个有很多因子的自然数。选定了宽度后,我们可以将这个宽度分为若干列,常见的分法是分为 12 栏,这同样是因为 12 是有多个因子的数,所以容易安排内容。现
阅读全文
摘要:自适应网页设计(Responsive Web Design)是一种网页设计方式,主要目标在于使得网页在不同分辨率的多种设备都能都良好呈现。自适应网页设计的关键在于使用 media query,针对不同宽度的屏幕使用不同的样式。例如,一般我们的网页有顶栏,侧栏,内容栏,和底栏。我们可以设定对于屏幕宽度大于等于 768 的设备,正常显示。对于屏幕宽度小于 768 的设备,将侧栏放在内容栏下面。如果屏幕宽度还小于 480,我们可以将顶栏的横向列表折叠成下拉菜单。IE6 - IE8 不支持 media query,它们将忽略 html 文件中包含 media query的 <link> 标
阅读全文
摘要:在之前的屏幕大小与视区大小 这篇文章中,已经介绍了移动设备的 viewport meta tag。这里介绍与它相关的 media type 和 media query 概念。CSS2 中可以通过 media type 对不同的浏览情形定义不同的样式。例如:@media screen { body { font-size: 16px }}@media print { body { font-size: 12pt }}@media screen, print { body { line-height: 1.5 }}上面 CSS 代码将对在正常浏览时设置字体大小为 16pt,而打印时设置字体大...
阅读全文
摘要:由于各个浏览器的各种差别很多,为使网页能兼容各个浏览器,我们开始使用的是浏览器检测的方式:即通过 navigator.userAgent 字符串来判断浏览器的类型和版本。这种方法现在看来有不少问题,例如:userAgent 字符串容易被修改和伪装,从而导致这种方法不可靠当浏览器的新版本支持某个新功能时,需要修改原有代码遇到新的浏览器时,需要修改原有代码以支持它们因此,这种方法应该尽量少使用,而改用新的方法:特征检测。特征检测通过检测某功能对应的函数或对象是否可用,来判定浏览器是否支持该功能。使用这种方法,就能克服前面的浏览器检测的几个问题。因此特征检测越来越受人们重视。例如,要检测浏览器是否支
阅读全文
摘要:浏览器在解析 HTML 文档后,会将它转化为一个由各种节点组成的文档树。例如下面的 HTML 文档<!DOCTYPE html><html> <head> <title>hello this</title> </head> <body> <h1>some heading</h1> <div> <p>some content</p> </div> </body></html>转化的 DOM 文档树基本是这样的(忽略一些
阅读全文
摘要:在网页中设置某元素的样式,可以有以下几种方式:通过外部的 CSS 样式表<!-- some.html --><link rel="stylesheet" type="text/css" href="some.css">/* some.css */#someid {background-color: blue;}通过内嵌的 CSS 样式表<!-- some.html --><style> #someid {background-color: blue;} </style>通过元
阅读全文

浙公网安备 33010602011771号