??xml version="1.0" encoding="utf-8" standalone="yes"?>
CREATE OR REPLACE FUNCTION splitstr(p_string IN VARCHAR2, p_delimiter IN VARCHAR2)
RETURN str_split
PIPELINED
AS
v_length NUMBER := LENGTH(p_string);
v_start NUMBER := 1;
v_index NUMBER;
BEGIN
WHILE(v_start <= v_length)
LOOP
v_index := INSTR(p_string, p_delimiter, v_start);
IF v_index = 0
THEN
PIPE ROW(SUBSTR(p_string, v_start));
v_start := v_length + 1;
ELSE
PIPE ROW(SUBSTR(p_string, v_start, v_index - v_start));
v_start := v_index + 1;
END IF;
END LOOP;
RETURN;
END splitstr;
q里提供另外一U方法,tbw利用oracle的正则相兛_数实玎ͼ
select dbms_lob.substr(regexp_substr('abc,def,ggg,1,2,3,4,5', '[^,]+', 1, x.n)) as player_guid
from dual a, (select rownum n from dual connect by rownum < 100) x
q里利用了函?regexp_substr和connect by
其中rownum < 100 会连接限制split的次?'[^,]+'为split拆分的正则表辑ּQ这里ؓ【,】逗号
上面sql语句l果是:
abc
def
ggg
1
2
3
4
5
1Q最q刚开始用oracle 数据库,很多东西都不怎么懂,要在tbw账号表添?1000个̎P找了一些资料,l过试可以使用Q开?我吧语法 都跟SqlServer 里面的了,׃一个上午的旉Q下面就是测试的数据的代码:特别注意的是Q?01'||to_char(i)q里 一直meiyo
DECLARE
i number:=0;
BEGIN
for i in 1..100 loop
insert into AUSERTABLE(USERID,USERPID,USERNAME)
values('01'||to_char(i),'8','武汉');
dbms_output.put_line(i);
end loop;
END;
imp help=y
2. 导入一个完整数据库
imp system/manager file=bible_db log=dible_db full=y ignore=y
3. 导入一个或一l指定用h属的全部表、烦引和其他对象
imp system/manager file=seapark log=seapark fromuser=seapark imp
system/manager file=seapark log=seapark fromuser=(seapark,amy,amyc,harold)
4. 一个用h属的数据导入另一个用?/p>
imp system/manager file=tank log=tank fromuser=seapark touser=seapark_copy
imp system/manager file=tank log=tank fromuser=(seapark,amy)
touser=(seapark1, amy1)
5. 导入一个表
imp system/manager file=tank log=tank fromuser=seapark TABLES=(a,b)
6. 从多个文件导?/p>
imp system/manager file=(paycheck_1,paycheck_2,paycheck_3,paycheck_4)
log=paycheck, filesize=1G full=y
7. 使用参数文g
imp system/manager parfile=bible_tables.par
Import the sample tables used for the Oracle8i Database Administrator's
Bible. fromuser=seapark touser=seapark_copy file=seapark log=seapark_import
8. 增量导入
imp system./manager inctype= RECTORE FULL=Y FILE=A
Oracle数据导入导出imp/expq当于oracle数据q原与备份。exp命o可以把数据从q程数据库服务器导出到本地的dmp文gQimp命o可以把dmp文g从本地导入到q处的数据库服务器中?利用q个功能可以构徏两个相同的数据库Q一个用来测试,一个用来正式用?/p>
执行环境Q可以在SQLPLUS.EXE或者DOS(命o?中执行,DOS中可以执行时׃ 在oracle 8i ?安装目录\ora81\BIN被设|ؓ全局路径Q该目录下有EXP.EXE与IMP.EXE文g被用来执行导入导出。oracle用java~写QSQLPLUS.EXE、EXP.EXE、IMP.EXEq两个文件有可能是被包装后的cL件。SQLPLUS.EXE调用EXP.EXE、IMP.EXE所包裹的类Q完成导入导出功能?br /> 转蝲Q?a >http://www.mengbu.com/ 地址:http://www.mengbu.com/news/56/
二域名Q?br />
RewriteCond Host: (?!/.|www|ww)(.*).gongluela.com
RewriteRule (.*) http/://www.gongluela.com/$1$2 [I,R]
防盗链:
ISAPI_Rewrite的httpd.ini内容写的是下面内容,如果你也遇到盗链的困扎ͼ可以参考一下:
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://(?:www\.gongluela\.com|www\.imfeng\.com|www\.goboyo\.com|www\.soso\.com|www\.google\.com|cache\.baidu\.com)).+
RewriteRule .*\.(?:jpg|kmz|kml|zip) /block.gif [I,O]
注释Q第二行里面的域名是允许链接囄的网站列表,目前我允许我自己的两个站和另外bloglines、zhuaxia、google、baiduq四个网站引用我站文Ӟ其他|站的引用被止?/p>
W三行是止引用的文件类型,包括jpg囄、Google Earth的kmz和kml、zip文g。当Ӟq可以增加其他类型,比如gif、rar{,因ؓ我站没有那些文gQ所以没有添加上厅R?/p>
下面是{载的一Ҏ章,特{l帅哥看的?/p>
发这个帮助文件是因ؓ在给朋友讄L的时候发C们的ISAPI Rewrite的设|都有些不正,有些甚至ȝ了站点的正常q行。就把官方自带的英文帮助_略的翻译了一下。大家可以自׃用和转蝲。但转蝲时如果你愿意h明是 蓝色 译的版本?/p>
Q=Q=Q=Q=Q=Q=Q=Q=Q=Q?br /> ISAPI Rewrite 配置介:
在NT/2000/XP?003q_上,ISAPI Rewrite在系l帐户下入INETINFOq程?IIS 以共存模式过滤器q行。所以系l帐户应该给予对ISAPI- REWIRITE DLLS Internet匿名讉Kl?可读可执行权?和所有的 HTTPD。INI 文g可读权限Q还应该l予pȝ帐户对于所有包?HTTPD。INI 文g的文件夹的可写权限,q将允许产生 HTTP?PARSE。ERRORS 日志文gQ来记录配置文g语法错误。对于PROXY模块也需要额外的权限Q因为它运行于q接池或HIGH-ISPLATED 应用模式QIIS帐户׃n池和HIGH-ISOLATION池应被给予对RWHELPERE。DLL的可L限。缺省情况下IWAM-《计机名》被用于所有的池,在相应的COM+应用讄中应借助COM+ADMINISTRATION MMC SNAP-IN建立池帐?/p>
配置文g格式化:
配置文g分ؓ两种Q?GLOBALQ服务器全局模式Q和 INDIVIDUALQ站点独立设|模式)文gQGLOBALQ服务器端全局模式Q配|文件应该被攑֜ISAPI-REWRITE 安装目录中,名ؓ httpd.ini 。这个文件可以通过开始菜单的快捷方式讉K和配|,q个文g里面的映规则ؓ全局规则Q将针对所有站点v效。INDIVIDUALQ站点独立设|模式)配置文g应该被放在虚拟站点的根目录内Q也被命名ؓhttpd.ini文gQ这里面应该攄针对站点的映配|设|,只针对被攄的虚拟站Ҏ效。两U类型的 httpd.ini 都是标准的windows ini 文g。所有的映射规则应该被放|在 [ISAPI_Rewrite] 之后。之前的文g文本被忽略?br /> HTTPD.INI文gCZ
[ISAPI_Rewrite]
# This is a comment
# 300 = 5 minutes
CacheClockRate 300
RepeatLimit 20
# 讄其他人没有下?httpd.ini ?httpd.parse.errors 文g的权?/p>
RewriteRule /httpd(?:\.ini|\.parse\.errors) / [F,I,O]
# Block external access to the Helper ISAPI Extension
RewriteRule .*\.isrwhlp / [F,I,O]
# 配置规则
RewriteCond Host: (.+)
RewriteCond 指o
Syntax:Q句法) RewriteCond TestVerb CondPattern [Flags]
q一指o定义一个条件规则,?RewriteRule 或?RewriteHeader?RewriteProxy指o前预行RewriteCond指oQ后面的规则只有它的Q模式匹配URI的当前状态ƈ且额外的条g也被应用才会被应用?/p>
TestVerb
Specifies verb that will be matched against regular expression.
特别定义的动词匹配规定的表达?/p>
TestVerb=(URL | METHOD | VERSION | HTTPHeaderName: | %ServerVariable) where:
URL – returns Request-URI of client request as described in RFC 2068 (HTTP 1.1);
q回客户端在RFC2068中描q的需求的Request-URI
METHOD – returns HTTP method of client request (OPTIONS, GET, HEAD, POST, PUT, Delete or TRACE);
q回客户端需?OPTIONS, GET, HEAD, POST, PUT, Delete or TRACE)的HTTPҎ
VERSION – returns HTTP version;
q回HTTP版本
HTTPHeaderName – returns value of the specified HTTP header. HTTPHeaderName can be any valid HTTP header name. Header names should include the trailing colon “:”. If specified header does not exists in a client’s request TestVerb is treated as empty string.
q回特定义的HTTP头文件的?/p>
HTTPHeaderName =
Accept:
Accept-Charset:
Accept-Encoding:
Accept-Language:
Authorization:
Cookie:
From:
Host:
If-Modified-Since:
If-Match:
If-None-Match:
If-Range:
If-Unmodified-Since:
Max-Forwards:
Proxy-Authorization:
Range:
Referer:
User-Agent:
Any-Custom-Header
得到更多的关于HTTP头文件的和他们的值的信息参考RFC2068
ServerVariable q回特定义的服务器变量的?。例如服务器端口Q全部服务器变量列表应在IIS文档中徏立,变量名应?W预定;
CondPattern
The regular expression to match TestVerb
规则表达式匹配TestVerb
[Flags]
Flags is a comma-separated list of the following flags:
O (nOrmalize)
Normalizes string before processing. Normalization includes removing of an URL-encoding, illegal characters, etc. This flag is useful with URLs and URL-encoded headers
RewriteRule 指o
Syntax: RewriteRule Pattern FormatString [Flags]
q个指o可以不止发生一ơ,每个指o定义一个单独的重写规则Q这些规则的定义命o很重要,因ؓq个命o在应用运行时规则是有用途的
I (ignore caseQ?/p>
不管大小写强行指定字W匹?http://www.chnjc.com/)Q这个FLAG影响RewriteRule指o和相应的RewriteCond 指o
F (Forbidden)
对客L做反应,停止REWRITINGq程q且发?03错误Q注意在q种情况下FORMATSTRING 是无用的q可以设|ؓM非空字符丌Ӏ?/p>
L (last rule)
不应用Q何重写规则在此停止重写进E,使用q个FLAG以阻止当前被重写的URI被后面的规则再次重写
N (Next iteration)
强制REWRITINGENGINE调整规则目标q且从头重启规则查(所有修改将保存Q,重启ơ数由RepeatLimit指定的值限Ӟ如果q个数DqN FLAG被忽略
NS (Next iteration of the same rule)
以N标记工作不从相同的规则重启规则规则进E(例如强制重复规则应用Q,通过RepeatLimit指o指定一个反复实行某一规则的最大数目,
P (force proxy)
强制目的URI在内部强制ؓ代理需求ƈ且立即通过ISAPI扩展应付代理需求,必须认代理字符串是一个有效的URI包括协议L{等否则代理返回错?/p>
R (explicit redirectQ?/p>
强制服务器对客户端发出重定向指示x应答Q提供目的URI的新地址Q重定向规则l常是最后规?/p>
RP (permanent redirect)
几乎和[R]标记相同但是发布301HTTP状态而不?02HTTP状态代?/p>
U (Unmangle Log)
当URI是源需求而不是重写需求时记蝲URI
O (nOrmalize)
在实行之前标准化字符丌Ӏ标准化包括URL-ENCODINGQ不合法的字W的再移动等Q这个标记对于URLS和URLS-ENDODED头是有用?/p>
CL (Case Lower)
写
CU (Case Upper)
大写
RewriteHeader directive
Syntax: RewriteHeader HeaderName Pattern FormatString [Flags]
q个指o是RewriteRule的更概括化变U,它不仅重写URL的客L需求部分,而且重写HTTP_q个指o不仅用于重写。生成,删除MHTTP_甚至改变客户端请求的Ҏ
HeaderName
指定被重写的客户头(http://www.yaopinwang.org/)Q可取的g RewriteCond 指o中TestVerb参数相同
Pattern
限定规则表达式以匚wRequest-URIQ?/p>
FormatString
限定生成新的URI的FormatString
[Flags]
是一个下列FLAGS的命令分隔列?/p>
I (ignore caseQ?/p>
不管大小写强行指定字W匹配,q个FLAG影响RewriteRule指o和相应的RewriteCond 指o
F (Forbidden)
对客L做反应,停止REWRITINGq程q且发?03错误Q注意在q种情况下FORMATSTRING 是无用的q可以设|ؓM非空字符丌Ӏ?/p>
L (last rule)
不应用Q何重写规则在此停止重写进E,使用q个FLAG以阻止当前被重写的URI被后面的规则再次重写
N (Next iteration)
强制REWRITINGENGINE调整规则目标q且从头重启规则查(所有修改将保存Q,重启ơ数由RepeatLimit指定的值限Ӟ如果q个数DqN FLAG被忽略
NS (Next iteration of the same rule)
以N标记工作不从相同的规则重启规则规则进E(例如强制重复规则应用Q,通过RepeatLimit指o指定一个反复实行某一规则的最大数目,
R (explicit redirectQ?/p>
强制服务器对客户端发出重定向指示x应答Q提供目的URI的新地址Q重定向规则l常是最后规?/p>
RP (permanent redirect)
几乎和[R]标记相同但是发布301HTTP状态而不?02HTTP状态代?/p>
U (Unmangle Log)
当URI是源需求而不是重写需求时记蝲URI
O (nOrmalize)
在实行之前标准化字符丌Ӏ标准化包括URL-ENCODINGQ不合法的字W的再移动等Q这个标记对于URLS和URLS-ENDODED头是有用?/p>
CL (Case Lower)
写
CU (Case Upper)
大写
要重Ud_FORMAT STRING模式应该生成一个空字符Ԍ例如q一规则从客户h中重UM理信?/p>
RewriteHeader User-Agent: .* $0
q且q一规则把OLD-URL HEADER 加入h中?/p>
RewriteCond URL (.*)RewriteHeader Old-URL: ^$ $1
最后一个例子将通过改变hҎ定向所有的WEBDAVh?WEBDAV。ASP
RewriteCond METHOD OPTIONS
RewriteRule (.*) /webdav.asp?$1
RewriteHeader METHOD OPTIONS GET
RewriteProxy directive
Syntax: RewriteProxy Pattern FormatString [Flags]
强制目的URI在内部强制ؓ代理需求ƈ且立即通过ISAPI扩展应付代理需求,q将允许IIS作ؓ代理服务器ƈ且重路由到其他站点和服务?/p>
Pattern
限定规则表达式以匚wRequest-URIQ?/p>
FormatString
限定生成新的URI的FormatString
[Flags]
是一个下列FLAGS的命令分隔列?/p>
D (Delegate security)
代理模式试图以当前假冒的用戯格登陆远E服务器Q?/p>
C (use Credentials)
代理模式试图一在URL或基本授权头文g中指定的资格登陆q程服务器,用这个标C可以使用http://user:password@host.com/path/ syntax 作ؓURL
F (Follow redirects)
~省情况下ISAPI_Rewrite 试囑ְMAPq程服务器返回的重定向指令到本地服务器命名空_如果q程服务器返回重定向点到那台服务器其他的某个位置QISAPI_Rewrite 修改这一重定向指令指向本服务器名Q这避免用L到真实(内部Q服务器名称
使用F标记强制代理模式内部跟踪q程服务器返回的重定向指令,使用q个标记如果你根本不需要接受远E服务器的重定向指oQ在WINHTTP讄中有重定向限制以避免q程重定向@?/p>
I (ignore case)
不管大小写强行指定字W匹?/p>
U (Unmangle Log)
当URI是源需求而不是重写需求时记蝲URI
O (nOrmalize)
在实行之前标准化字符丌Ӏ标准化包括URL-ENCODINGQ不合法的字W的再移动等Q这个标记对于URLS和URLS-ENDODED头是有用?/p>
CacheClockRate directive
Syntax: CacheClockRate Interval
q个指o只在GLOBAL配置内容中出玎ͼ如果q个指o在SITE-LEVEL内容中出现将被忽略ƈ把错误信息写入httpd.parse.errors 文g
ISAPI_Rewrite caches每次在第一ơ加载时配置(http://www.mshuba.com/)Q用这个指令你可以限定当一个特定站点从~存中清理的不活动周期,把这个参数设|的_大你可以强制 ISAPI_Rewrite 怸清理~存Q记住Q何配|文件的改变在下次h后立x新而忽略这个周?/p>
Interval
限定特定配置被清理出~存的不作ؓ旉Q以U计Q,~省?600Q?时Q?/p>
EnableConfig and DisableConfig directives
Syntax:
EnableConfig [SiteID|"Site name"]
DisableConfig [SiteID|"Site name"]
Ҏ选站ҎzL不激zSITE-LEVEL配置或者改变缺省配|,~省SITE-LEVEL配置不激z,q个指o只出现在GLOBAL配置内容?/p>
SiteID
Numeric metabase identifier of a site
Site name
Name of the site as it appears in the IIS console
不用参数使用q个命o改变缺省配|到ENABLE/DISABLE配置q程
例子
下面例子配置仅作用于ID=1Q典型是~省站点Q名字是MY SITE的站?/p>
DisableConfig
EnableConfig 1
EnableConfig”My site”
下边例子激zdUCؓSOMESITE配置因ؓ它分割设|重载了~省讄
EnableConfig”Some site”
DisableConfig
EnableRewrite and DisableRewrite directives
Syntax:
EnableRewrite [SiteID|"Site name"]
DisableRewrite [SiteID|"Site name"]
Ҏ选站ҎzL不激z重写或者改变缺省配|,~省重写配置Ȁz,q个指o只出现在GLOBAL配置内容?/p>
SiteID
Numeric metabase identifier of a site
Site name
Name of the site as it appears in the IIS console.
不用参数这个命令将全部ȀzL者不Ȁz?/p>
RepeatLimit directive
Syntax: RepeatLimit Limit
q个指o可以出现在GLOBAL和SITE-LEVEL配置文g中,如果出现在GLOBAL配置文g中竟改变GLOBAL对于所有站点的限制Q出现在SITE-LEVEL配置中竟只改变对于这个站点的限制q且q个限制不能过GLOBAL限制
ISAPI_Rewrite在实行规则时允许循环Q这个指令允讔R制最大可能@环的数量Q可以设|ؓ0?而不支持循环Q?/p>
LIMIT
限制最大@环数量,~省32
RFStyle directive
Syntax: RFStyle Old | New
Configuration Utility
ISAPI_Rewrite Full包括配置功用Q可以在 ISAPI_Rewrite E序l中启动Q,它允怽览试状态ƈ输入注册码(如果在安装过E中没有注册Q,q且调整部分与代理模式操作相关的产品功能QUTILITY是由三个面l成的属性表
Trial page允许你浏览TIRAL状态ƈ输入注册码(如果在安装过E中没有注册Q?/p>
Settings page
q页包含对下列参数的~辑?/p>
Helper URL
q个参数影响qo器和代理模块之间的联pL式,它即可以是以点做前缀的文件扩展名Q如 .isrwhlpQ也可以是绝对\径,
W一U情况下扩展名将q加在初始请求URI上ƈ且代理模块竟通过SCRIPT MAPȀz,~省扩展名isrwhlp在安装进E中加在global script map 中,如果你改变这个扩展名或者你的应用不l承global script map 讄你应该手动添加向script map 所需求的入口。这个应该有如下参数
Executable: An absolute path to the rwhelper.dll in the short form
Extension: Desired extension (.isrwhlp is default)
Verbs radio button: All Verbs
Script engine checkbox: Checked
Check that file exists checkbox: Unchecked
我们已经创徏了一个WSH script proxycfg.vbs Q可以简单在一个a script maps中注册,她位于安装文件夹q且可以在命令行一如下方式q行
cscript proxycfg.vbs [-r] [MetabasePath]
Optional -r 强制注册扩展?/p>
Optional MetabasePath parameter allows specification of the first metabase key to process. By default it is “/localhost/W3SVC”.
要在所有现存的 script maps 中注册你可以以如下命令行Ȁz?script
cscript proxycfg.vbs -r
W二U情况下你应该提供一个URI作ؓ’Helper URL’的?http://www.gongluela.com/)Q你也应该map 一?ISAPI_Rewrite的安装文件夹作ؓ意个站点的虚拟文g?/p>
注意Q根据顾客反应,IIS5Q也许包括IIS4Q对长目录名有问题。所以我们强烈推荐用短目录?/p>
Worker threads limit
q个参数限制在代理扩展线E池中工作线E数Q缺省ؓ0意味着q个限制{于处理器数量乘?
Active threads limit
q个参数限制当前q行U程敎ͼq个数量不可大于”Worker threads limit”. ~省0意思是{于处理器数?/p>
Queue size q个参数定义最大请求数量,如果你曾l看到Queue timeout expired” 信息?the Application event log中你可以增加q个参数
Queue timeout
q个参数定义你在内部h队列中防止新h的最大等待时_如果你曾l看到Queue timeout expired” 信息?the Application event log中你可以增加q个参数
Connect timeout
以毫U设定代理模块连接超?/p>
Send timeout
以毫U设定代理模块发送超?/p>
Receive timeout
以毫U设定代理模块发送超?/p>
About page.
It contains copyright information and a link to the ISAPI_Rewrite’s web site.
Regular expression syntax
q一部分覆盖?ISAPI_Rewrite规定的表辑֏?/p>
Literals
所有字W都是原意除?“.”, “*”, “?”, “+”, “(”, “)”, “{”, “}”, “[", "]“, “^” and “$”.Q这些字W在?#8220;\”处理时是原意Q原意指一个字W匹配自w?/p>
Wildcard
The dot character “.” matches any single character except null character and newline character
以下为句?/p>
Repeats
A repeat is an expression that is repeated an arbitrary number of times. An expression followed by “*” can be repeated any number of times including zero. An expression followed by “+” can be repeated any number of times, but at least once. An expression followed by “?” may be repeated zero or one times only. When it is necessary to specify the minimum and maximum number of repeats explicitly, the bounds operator “{}” may be used, thus “a{2}” is the letter “a” repeated exactly twice, “a{2,4}” represents the letter “a” repeated between 2 and 4 times, and “a{2,}” represents the letter “a” repeated at least twice with no upper limit. Note that there must be no white-space inside the {}, and there is no upper limit on the values of the lower and upper bounds. All repeat expressions refer to the shortest possible previous sub-expression: a single character; a character set, or a sub-expression grouped with “()” for example.
Examples:
“ba*” will match all of “b”, “ba”, “baaa” etc.
“ba+” will match “ba” or “baaaa” for example but not “b”.
“ba?” will match “b” or “ba”.
“ba{2,4}” will match “baa”, “baaa” and “baaaa”.
Non-greedy repeats
Non-greedy repeats are possible by appending a ‘?’ after the repeat; a non-greedy repeat is one which will match the shortest possible string.
For example to match html tag pairs one could use something like:
“<\s*tagname[^>]*>(.*?)<\s*/tagname\s*>”
In this case $1 will contain the text between the tag pairs, and will be the shortest possible matching string.
Parenthesis
Parentheses serve two purposes, to group items together into a sub-expression, and to mark what generated the match. For example the expression “(ab)*” would match all of the string “ababab”. All sub matches marked by parenthesis can be back referenced using \N or $N syntax. It is permissible for sub-expressions to match null strings. Sub-expressions are indexed from left to right starting from 1, sub-expression 0 is the whole expression.
Non-Marking Parenthesis
Sometimes you need to group sub-expressions with parenthesis, but don’t want the parenthesis to spit out another marked sub-expression, in this case a non-marking parenthesis (?:expression) can be used. For example the following expression creates no sub-expressions:
“(?:abc)*”
Alternatives
Alternatives occur when the expression can match either one sub-expression or another, each alternative is separated by a “|”. Each alternative is the largest possible previous sub-expression; this is the opposite behaviour from repetition operators.
Examples:
“a(b|c)” could match “ab” or “ac”.
“abc|def” could match “abc” or “def”.
Sets
A set is a set of characters that can match any single character that is a member of the set. Sets are delimited by “[" and "]” and can contain literals, character ranges, character classes, collating elements and equivalence classes. Set declarations that start with “^” contain the compliment of the elements that follow.
Examples:
Character literals:
“[abc]” will match either of “a”, “b”, or “c”.
“[^abc] will match any character other than “a”, “b”, or “c”.
Character ranges:
“[a-z]” will match any character in the range “a” to “z”.
“[^A-Z]” will match any character other than those in the range “A” to “Z”.
Character classes
Character classes are denoted using the syntax “[:classname:]” within a set declaration, for example “[[:space:]]” is the set of all whitespace characters. The available character classes are:
alnum Any alpha numeric character.
alpha Any alphabetical character a-z and A-Z. Other characters may also be included depending upon the locale.
blank Any blank character, either a space or a tab(http://www.xbszgs.com/).
cntrl Any control character.
digit Any digit 0-9.
graph Any graphical character.
lower Any lower case character a-z. Other characters may also be included depending upon the locale.
print Any printable character.
punct Any punctuation character.
space Any whitespace character.
upper Any upper case character A-Z. Other characters may also be included depending upon the locale.
xdigit Any hexadecimal digit character, 0-9, a-f and A-F.
word Any word character – all alphanumeric characters plus the underscore.
unicode Any character whose code is greater than 255, this applies to the wide character traits classes only.
There are some shortcuts that can be used in place of the character classes:
\w in place of [:word:]
\s in place of [:space:]
\d in place of [:digit:]
\l in place of [:lower:]
\u in place of [:upper:]
Collating elements
Collating elements take the general form [.tagname.] inside a set declaration, where tagname is either a single character, or a name of a collating element, for example [[.a.]] is equivalent to [a], and [[.comma.]] is equivalent to [,]. ISAPI_Rewrite supports all the standard POSIX collating element names, and in addition the following digraphs: “ae”, “ch”, “ll”, “ss”, “nj”, “dz”, “lj”, each in lower, upper and title case variations. Multi-character collating elements can result in the set matching more than one character, for example [[.ae.]] would match two characters, but note that [^[.ae.]] would only match one character.
Equivalence classes
Equivalenceclassestakethegeneralform[=tagname=] inside a set declaration, where tagname is either a single character, or a name of a collating element, and matches any character that is a member of the same primary equivalence class as the collating element [.tagname.]. An equivalence class is a set of characters that collate the same, a primary equivalence class is a set of characters whose primary sort key are all the same (for example strings are typically collated by character, then by accent, and then by case; the primary sort key then relates to the character, the secondary to the accentation, and the tertiary to the case). If there is no equivalence class corresponding to tagname, then [=tagname=] is exactly the same as [.tagname.].
To include a literal “-” in a set declaration then: make it the first character after the opening “[" or "[^", the endpoint of a range, a collating element, or precede it with an escape character as in "[\-]“. To include a literal “[" or "]” or “^” in a set then make them the endpoint of a range, a collating element, or precede with an escape character.
Line anchors
An anchor is something that matches the null string at the start(http://www.jiamengku.com/) or end of a line: “^” matches the null string at the start of a line, “$” matches the null string at the end of a line.
Back references
A back reference is a reference to a previous sub-expression that has already been matched, the reference is to what the sub-expression matched, not to the expression itself. A back reference consists of the escape character “\” followed by a digit “1″ to “9″, “\1″ refers to the first sub-expression, “\2″ to the second etc. For example the expression “(.*)\1″ matches any string that is repeated about its mid-point for example “abcabc” or “xyzxyz”. A back reference to a sub-expression that did not participate in any match, matches the null string. In ISAPI_Rewrite all back references are global for entire RewriteRule and corresponding RewriteCond directives. Sub matches are numbered up to down and left to right beginning from the first RewriteCond directive of the corresponding RewriteRule directive, if there is one.
Forward Lookahead Asserts
There are two forms of these; one for positive forward lookahead asserts, and one for negative lookahead asserts:
“(?=abc)” matches zero characters only if they are followed by the expression “abc”.
“(?!abc)” matches zero characters only if they are not followed by the expression “abc”.
Word operators
The following operators are provided for compatibility with the GNU regular expression library.
“\w” matches any single character that is a member of the “word” character class, this is identical to the expression “[[:word:]]”.
“\W” matches any single character that is not a member of the “word” character class, this is identical to the expression “[^[:word:]]”.
“\<” matches the null string at the start of a word.
“\>” matches the null string at the end of the word.
“\b” matches the null string at either the start or the end of a word.
“\B” matches a null string within a word.
Escape operator
The escape character “\” has several meanings.
The escape operator may introduce an operator for example: back references, or a word operator.
The escape operator may make the following character normal, for example “\*” represents a literal “*” rather than the repeat operator.
Single character escape sequences:
The following escape sequences are aliases for single characters:
Escape sequence Character code Meaning
\a 0×07 Bell character.
\t 0×09 Tab character.
\v 0×0B Vertical tab.
\e 0×1B ASCII Escape character.
\0dd 0dd An octal character code, where dd is one or more octal digits.
\xXX 0xXX A hexadecimal character code, where XX is one or more hexadecimal digits.
\x{XX} 0xXX A hexadecimal character code, where XX is one or more hexadecimal digits, optionally a unicode character.
\cZ z-@ An ASCII escape sequence control-Z, where Z is any ASCII character greater than or equal to the character code for ‘@’.
Miscellaneous escape sequences:
The following are provided mostly for perl compatibility, but note that there are some differences in the meanings of \l \L \u and \U:
Escape sequence Meaning
\w Equivalent to [[:word:]].
\W Equivalent to [^[:word:]].
\s Equivalent to [[:space:]].
\S Equivalent to [^[:space:]].
\d Equivalent to [[:digit:]].
\D Equivalent to [^[:digit:]].
\l Equivalent to [[:lower:]].
\L Equivalent to [^[:lower:]].
\u Equivalent to [[:upper:]].
\U Equivalent to [^[:upper:]].
\C Any single character, equivalent to ‘.’.
\X Match any Unicode combining character sequence, for example “a\x 0301″ (a letter a with an acute).
\Q The begin quote operator, everything that follows is treated as a literal character until a \E end quote operator is found.
\E The end quote operator, terminates a sequence begun with \Q.
What gets matched?
The regular expression will match the first possible matching string, if more than one string starting at a given location can match then it matches the longest possible string. In cases where their are multiple possible matches all starting at the same location, and all of the same length, then the match chosen is the one with the longest first sub-expression, if that is the same for two or more matches, then the second sub-expression will be examined and so on. Note that ISAPI_Rewrite uses MATCH algorithm. The result is matched only if the expression matches the whole input sequence. For example:
RewriteCond URL ^/somedir/.* #will match any request to somedir directory and subdirectories, while
RewriteCond URL ^/somedir/ #will match only request to the root of the somedir.
Special note about “pathological” regular expressions
ISAPI_Rewrite uses a very powerful regular expressions engine Regex++ written by Dr. John Maddock. But as any real thing it’s not ideal: There exists some “pathological” expressions which may require exponential time for matching; these all involve nested repetition operators, for example attempting to match the expression “(a*a)*b” against N letter a’s requires time proportional to 2N. These expressions can (almost) always be rewritten in such a way as to avoid the problem, for example “(a*a)*b” could be rewritten as “a*b” which requires only time linearly proportional to N to solve. In the general case, non-nested repeat expressions require time proportional to N2, however if the clauses are mutually exclusive then they can be matched in linear time – this is the case with “a*b”, for each character the matcher will either match an “a” or a “b” or fail, where as with “a*a” the matcher can’t tell which branch to take (the first “a” or the second) and so has to try both.
Boost 1.29.0 Regex++ could detect “pathological” regular expressions and terminate theirs matching. When a rule fails ISAPI_Rewrite sends “500 Internal Server error – Rule Failed” status to a client to indicate configuration error. Also the failed rule is disabled to prevent performance losses
Format string syntax
In format strings, all characters are treated as literals except: “(”, “)”, “$”, “\”, “?”, “:”.
To use any of these as literals you must prefix them with the escape character \
The following special sequences are recognized:
Grouping:
Use the parenthesis characters ( and ) to group sub-expressions within the format string, use \( and \) to represent literal ‘(’ and ‘)’.
Sub-expression expansions:
The following perl like expressions expand to a particular matched sub-expression:
$` Expands to all the text from the end of the previous match to the start of the current match, if there was no previous match in the current operation, then everything from the start of the input string to the start of the match.
$’ Expands to all the text from the end of the match to the end of the input string.
$& Expands to all of the current match.
$0 Expands to all of the current match.
$N Expands to the text that matched sub-expression N.
Conditional expressions:
Conditional expressions allow two different format strings to be selected dependent upon whether a sub-expression participated in the match or not:
?Ntrue_expression:false_expression
Executes true_expression if sub-expression N participated in the match, otherwise executes false_expression.
Example: suppose we search for “(while)|(for)” then the format string “?1WHILE:FOR” would output what matched, but in upper case
Escape sequences:
The following escape sequences are also allowed:
\a The bell character.
\f The form feed character.
\n The newline character.
\r The carriage return character.
\t The tab character.
\v A vertical tab character.
\x A hexadecimal character – for example \x0D.
\x{} A possible unicode hexadecimal character – for example \x{1A0}
\cx The ASCII escape character x, for example \c@ is equivalent to escape-@.
\e The ASCII escape character.
\dd An octal character constant, for example \10
Examples例子
Emulating host-header-based virtual sites on a single site
例如你在两个域名注册www.gongluela.com ?www.jiamengku.comQ现在你可以创徏两个不同的站点而用单一的物理站炏V把以下规则加入C的httpd.ini 文g
[ISAPI_Rewrite]
#Fix missing slash char on folders
RewriteCond Host: (.*)
RewriteRule ([^.?]+[^.?/]) http\://$1$2/ [I,R]
#Emulate site1
RewriteCond Host: (?:www\.)?site1\.com
RewriteRule (.*) /site1$1 [I,L]
#Emulate site2
RewriteCond Host: (?:www\.)?site2\.com
RewriteRule (.*) /site2$1 [I,L]
现在你可以把你的站点攑֜/site1 ?/site2 目录?
或者你可以应用更多的类规则Q?/p>
[ISAPI_Rewrite]
#Fix missing slash char on folders
RewriteCond Host: (.*)
RewriteRule ([^.?]+[^.?/]) http\://$1$2/ [I,R]
RewriteCond Host: (www\.)?(.+)
RewriteRule (.*) /$2$3
为站点应该命名目录ؓ /somesite1.com, /somesite2.info, etc.
Using loops (Next flag) to convert request parameters
假如你希望有物理URL?http://www.myhost.com/foo.asp?a=A&b=B&c=C 使用h?http://www.myhost.com/foo.asp/a/A/b/B/c/C 参数数量可以从两个请求之间变?/p>
臛_有两个解军_法。你可以单的为每一可能的参数数量添加一个分隔规则或者你可以使用一个技术说明如下面的例?/p>
ISAPI_Rewrite]
RewriteRule (.*?\.asp)(\?[^/]*)?/([^/]*)/([^/]*)(.*) $1(?2$2&:\?)$3=$4$5 [NS,I]
q个规则从h的URL中抽取一个参数追加在h字符的末ƈ且从头重启规则进E。所以它@环直到所有参数被Ud到适当的位|,或者直到超qRepeatLimit
也存在许多这个规则的变种。但使用不同的分隔字W,例如。用URLS?a target="_blank">http://www.myhost.com/foo.asp~a~A~b~B~c~C 可以应中下面的规则:
ISAPI_Rewrite]
RewriteRule (.*?\.asp)(\?[^~]*)?~([^~]*)~([^~]*)(.*) $1(?2$2&:\?)$3=$4$5 [NS,I]
Running servers behind IIS
假如我们有一个内|服务器q行IIS而几个公司服务器q行其他q_Q这些服务器不能从INTERNET直接q入Q而只能从我们公司的网l进入,有一个简单的例子可以使用代理标记映射其他服务器到IIS命名I间Q?/p>
[ISAPI_Rewrite]
RewriteProxy /mappoint(.+) http\://sitedomain$1 [I,U]
Moving sites from UNIX to IIS
q个规则可以帮助你把URL?/~username 改变?/username 和从 /file.html 改变?/file.htm. q个在你仅仅把你的站从UNIXUd到IISq且保持搜烦引擎和其他外部页面对老页面的q接时是有用?/p>
[ISAPI_Rewrite]
#redirecting to update old links
RewriteRule (.*)\.html $1.htm
RewriteRule /~(.*) http\://myserver/$1 [R]
Moving site location
许多|管问这L问题Q他们要重定向所有的hC个新的网l服务器Q当你需要徏立一个更新的站点取代老的的时候经常出现这L问题Q解x案是?a target="_blank">ISAPI_Rewrite 于老服务器?/p>
[ISAPI_Rewrite]
#redirecting to update old links
RewriteRule (.+) http\://newwebserver$1 [R]
Browser-dependent content
Dynamically generated robots.txt
robots.txt是一个搜索引擎用来发现能不能被烦引的文gQ但是ؓ一个大站创Z个有许多动态内容的q个文g是很复杂的工作,我们可以写一个robots.asp script
现在使用单一规则生成 robots.txt
[ISAPI_Rewrite]
RewriteRule /robots\.txt /robots.asp
Making search engines to index dynamic pages
站点的内容存储在XML文g中,在服务器上有一?XMLProcess.asp 文g处理XML文gq返回HTML到最l用PURLS到文档有如下形式
http://www.mysite.com/XMLProcess.asp?xml=/somdir/somedoc.xml
但是许多公共引擎不能索引此类文档Q因为URLS包含问号Q文档动态生成)Q?/p>
ISAPI_Rewrite可以完全消除q个问题
[ISAPI_Rewrite]
RewriteRule /doc(.*)\.htm /XMLProcess.asp\?xml=$1.xml
现在使用如同http://www.mysite.com/doc/somedir/somedoc.htm的URLq入文档Q搜索引擎将不知道不是somedoc.htm 文gq且内容是动态生成的
Negative expressions (NOT
有时当模式不匚w你需要应用规则,q种情况下你可以使用在规则表辑ּ中称为Forward Lookahead Asserts
例如你需要不使用IE把所有用L动到别的地点
[ISAPI_Rewrite]
# Redirect all non Internet Explorer users
# to another location
RewriteCond User-Agent: (?!.*MSIE).*
RewriteRule (.*) /nonie$1
Dynamic authentification
例如我们在站点上有一些成员域Q我们在q个域上需要密码保护文件而我们不喜欢用BUILT-IN服务器安全,q个情况下可以徏立一个ASP脚本Q称为proxy.aspQ,q个脚本代理所有请求到成员域ƈ且检查请求允许,q里有一个简单的模板你可以放q你自己的授权代?/p>
现在我们要通过配置 ISAPI_Rewrite 通过q个面代理h:
[ISAPI_Rewrite]
# Proxy all requests through proxy.asp
RewriteRule /members(.+) /proxy.asp\?http\://mysite.com/members$1
保护囄 防止盗链
Blocking inline-images (stop hot linking
假设我们在http://www.mysite.com/下有些页面调用一些GIF、jpg、png囄Q不允许别h盗链引用C们自q面上,因ؓq样大大增加了服务器量?br /> 当然我们不能100%保护囄Q但我们臛_可以在得到浏览器发出的HTTP Referer header的地斚w制这U情况,因ؓq个可以判断是否我们自己的站点调用了我们自己的图片?/p>
[ISAPI_Rewrite]
RewriteCond Host: (.+)
RewriteCond Referer: (?!http://\1.*).*
RewriteRule .*\.(?:gif|jpg|png) /block.gif [I,O]
注:ISAPI_Rewrite分精(Lite)和完?Full)?_版不支持Ҏ个虚拟主机站点进行重?只能q行全局处理.不过对于有服务器的朋?_版也够?_版下载地址:http://www.helicontech.com/download/,是那Lite Version (free)啦?/span>
转蝲Q?a target="_blank">说一路读Qhttp://www.yiludu.cn/
正所谓的理想Q应该也是x|了。回到现实生zd中,因受台风的媄响,感觉q个城市今年的秋天来得有Ҏ?/p>
]]>
两只羊一Ҏ录文?/p>
转蝲Q?a >收录文学Q?a >http://www.sluwx.cn/
乡政府响应上U号召搞对口扶Q党委秘书艾妮左惛_惌一癑օC两只山。两只小q一公一母,毛茸茸的。艾妮把两只山拴在一条上,牵到了包扶的李老汉家?br />
李老汉用一U怪怪的眼光看了看爱妮,以ؓ他是?a >UUSee|络电视呢?无声的接q两只小。李老汉q不老,只是胡子长了些相貌老了些,人其实才五十出头。李老汉从来对乡政府的扶贫工作就不配合,但绝不反抗。比Ҏ些年政府号召大家U药Q李老汉是不种。乡政府工作人员亲自l他U上Q李老汉不管不问Q后来地荒的成了乱坟冈。再比方_乡政府号召大家搞袋料香菇Q他把柴ּ好放在院子里Q就是不_碎。不_碎p不成袋料Q装不成袋料他的d完不成。结果政府就免费l他_碎Qƈ装上了袋。可再来查时Q李老汉的袋料还是原?---李老汉把袋料蒸q了Q但是不点菌。类DL事发生在李老汉w上的还有几赗乡政府ȝ了,李老汉的行为类g印度独立时的甘地Q搞的是不合作运动?br />
爱妮包扶李老汉Q?a >收录文学q是真动了脑{的。李老汉M至于把两只小放在圈里活z饿dQ?br />
其实李老汉q有几只,可就是繁D不h。爱妮送李老汉两只,q次他没有向以前那样不合作。把两只羊侍弄的精焕发,膘肥体壮Q子孙成。李老汉惻Iq群是我的了,我风里来雨里ȝQ如果爱妮来要羊Q就把两只长大了的羊l她。可是,没有q几天,他的x发生了变化。ؓ什么给她两只羊Q羊是我喂大的还她两只小就不错了。可是又q了几天Q他的想法又发生了变化,Z么还他两只小,他的两只羊不是我喂Q早死了?br />
乡政府离城远Q还d。艾妮在一ơ出差时车翻Z?br />
艑֦一死,李老汉开始还有点伤悲。可不久他就高兴h?a >一路读着一部小说。爱妮一死,׃会要了?br />
艑֦的丈夫在一个阳光明媚的早上来到了老李的家。此时的李老汉今非昔比Q羊里的已l一癑֤头了。艾妮的丈夫递给李老汉一只香烟:“当年爱妮送给你的两只,是她自己花钱买的Q我想看看那两只羊……”
李老汉抽着艑֦丈夫发的黄金Ӟ拿眼斜瞅着艑֦的丈夫说Q?#8220;你家艑֦送过我两只羊吗?”
李老汉q脆脖子一歪:“惌我的?没门Q就是掏׃不卖l你Q?#8221;
李老汉攑և了狗Q艾妮的丈夫撒腿pQ可狗的速度好像比他更快Q他只好加快速度……
后来Q乡书记Ҏ老汉_艑֦的丈夫是来给你的圈消毒的,你怎么攄咬h呢?
在我所见的话题q告文章中,的确有部分用户只是敷衍了事,比如把广告的相关介绍抄上Q然后随便写两句无关痛痒的评价了事。我在上一文章中q告d该努力去与博客交与对话Q不q前提是建立在博客认真了解ƈ使用相关产品Q表达自q到的见解与观点之后。只有这Pq告M博客之间的交与对话才有产生的条件。那怎么成ؓ一个合格的参与话题q告的博客,个h觉得应该注意以下几点Q?/p>
1、选择自己感兴的q告。不用接受一个自己毫不了解的q告然后无病d一番,那样不但你写着不舒服,让你的读者看着也不舒服?/p>
2、认真了解与使用产品。至你应该看看产品?FAQQ帮助文档,了解该品到底有些什么功能与特点Q然后试用每一功能。因为只有这P你的评论才是有h值的?/p>
3、写文章之前先用搜烦看看其他人怎么说。当然这q不是要求每一个博客都有独到的见解Q不q当你尽可能多的了解其他人的评论Q对自己的评量也是有帮助的?/p>
4、按照广告要求完成文章。其实这一Ҏ很多博客忽视的,比如加相关的x囄和链接,辑ֈ字数要求{等Q而最l导致文章得不到通过。永q记住,你参与的是一场商业活动,既然参与Q你得遵守游戏规则?/p>
博客与广告商应该做的我都说到了,那让我们再来看看夹在中间?Feedsky 做得怎样。前D|?Feedsky Ҏ有参与话题广告的博客q行了重新定价ƈ开始收?50% 的手l费Q很多定价降低的博客表达了强烈的不满Q特别是那些数据很高Q唯独在 Feedsky 中订阅数很少的博客媄响最大?/p>
我在前面提到q告商不要关心博客营销中的点击数据Q而要重视与博客的交流与对话。从另一斚wԌ博客的各Ҏ据不应该成ؓ对博客定L唯一标准。广告商需要的是一个典型的用户Q有见解的用P能提供有价值意见的用户Q而对产品的传播是ơ要的。?Feedsky 应该博客在每次参与话题q告中的表现加入到定L考虑因素之内Q而且权重要高才行。简单点_是写得好的Q不博客的其他数据怎样Q定价会来高Q写得差的,即便博客其他数据高,定h也会调低。?Feedsky 已经投放了不的话题q告Q相信在q一点上也是有条件做到的?/p>
我始l都是看好话题广告的Q不q这需要在q条关系链上的各方共同完善,哪一个环节出了问题媄响都会很大。当然以上不对q告商、博客还?Feedsky 提出的意见都是个Z成熟的看法,如有不妥之处Q还请大家多多指证?/p>
转蝲Q?a >UUSee下蝲Q?a >http://www.uusee5.org.cn/
杰座和玫瑰的年?/p>
当少q站在河边,杰?/a>?/font>x仿佛逝的时光。而他看见?a target="_blank">一路读Q?font face="宋体">http://www.yiludu.cn/Q的影子Q它们不断被冲刷和更改,直至变成一首首_致的诗风干在岸上潮湿的季雨里?br />
当少女站在香樟树下,夏天仿佛她的恋h。而她看见了未来的影子Q它们在斑驳的树荫下一直蔓Ӟ直至消散在那渐远的单车和白色的衬衣里?br />
对于每一个我所喜欢的歌手,他们的歌都会在我的脑里形成一U觉。水木年华给我的q觉便是q样的一个男孩和奛_的组合。他和她构成了我们的象征Q他们是一q画Q一q清晰素描着我们青春那水中与树下的往事的囄Q让所有h有所念亦有所伤。而在此后不断的深入里Q水与木q两U不同的元素便紧紧地在意识里l合Q从未有q半点的分离?br />
水木q华的歌L带着很强的画面感Q属于干净x的那U,于是所有的歌便成了一个个短小而丰富的故事Q短的是篇q,丰富的却不仅仅只是一个过E,更有q个q程里的情感。最早接触他们的一首歌是《爱春秋》—?#8220;我摘一朵带着露水的玫瑰花/要送给我最q?#8221;。这U信手拈来的唯美l非一个不具备诗h气质的艺术家所能达到。在q里Q我更愿意把玫瑰理解成青春的心事Q娇嫩而高贵,只配为心׃人所拥有。正如他们之前的《一生有你》—?#8220;多少人曾爱慕你年L的容颜,可知谁愿承受岁月无情的变q?#8221;。在那年Q水木年华凭借这首歌完美地将叶芝的诗用流行元素加以诠释,也因此唤醒了多数青年内心卡徒酒吧Q?a >http://www.katu98.cn/Q的旧梦?/p>
来源Q?a rel="bookmark">杰?周杰伦新专辑杰?/a>
1Q升U单元测?/p>
你的~程没有试Q你应当随时q行试Q即TATFT ( testing all the fucking time )。当然你应当选择比仅是单元测试更好的方式。RSpec和Shoulda是两个可以选来使用的工兗?/p>
2Q试用TDD
既然你在试Q那你就应当记录下这些测试。不要记录代码ƈ用后来的试覆盖它,而应当是Ҏ的记录。TDD ( Test Drive Development ) 可以使你~出更好的代码,TATFT最重要的基是 TDD。进行TATFTq不难,首先你写下你所能做的最单的试q运行,观察试的失败,然后写出执行语句以便使测试通过Q不停地重复q样的过E就可以了?/p>
3Q自动化部v
自动化是你最好的朋友Q想要实现自动Capistrano是相当好用的工具。在你配|部|好你的目后,W一个要装的东西应当是Capistrano。从W一天v可以自动化部v会节约你大量的旉?/p>
4Q安?SCM
安装 SCMq学习用它Q这样做的好处是可以佉K些超重的库中的代码不再那么冗J,目前有大量的工具可以选择Q我每天使用的是Git。Git是一Ƒ־特别的分布式SCMQ即DSCM。DSCM是很有前景的Q它可以同有其他库的用户们协同工作?/p>
5Q审查持l集?/p>
现在我们已经试了代码ƈ其安全的存攑֜库内。比起不停地试Q什么是更好的方式?自动试是个不错的选择。很感激有cruisecontrol.rb的存在,q个应用工具自动q行了那些琐的试?/p>
6Q了解你的代?/p>
写代码是一回事Q但是更重要的事情是了解代码。可以用四种自动化工h帮助你了解代码:flog?tarantula、rcov 和saikuro。这些工具分别有其独C处,我很乐意向你介绍它们?br /> FlogQ可以按字母排列的顺序来记录复杂的结果?/p>
TarantulaQ根据相x原则和一些灵zȝ创意设计的。它所做的是spider 你的Rail应用以便L索坏链接。这真是令h得到解脱Q我受益匪?/p>
RcovQ这是一个在Ruby界相当受Ƣ迎的工兗它是一个C0范围工具Q换a之,它精的定Z的代码中哪些部分在被试Q哪些部分没被测试。唯一的缺h它不能测试诸如:“if condition_a && condition_b || condition_c”. q样的语句?/p>
SaikuroQ可以测量出你代码环的复杂性,卛_以计出你代码branche 和path的数量。当然你代码的复杂性越低,它运行的容易?/p>
7Q升U你的Fixtures
Fixtures 是看h很有创意的事物之一Q但有诸多的弊端。对于FixturesQ只有极的替代Q我选择使用Rails ScenariosQ原因是它在试中工作v来像Fixtures一P但是允许我做比YAML更好的DSL。我也可以在一个文件内指定多重?ScenariosQ这事情变得更有l织性?/p>
8Q收集分析对?/p>
在Railq_上搭建新的系l。每周都会有新的监控工具出现Q这h们有很多的选择Q在q里我介l我已经使用q的工具QHopToad ?TuneUp?/p>
HopToad对于异常报文有不错的能力Q它可收集间断应用ƈ用简便的方式昄攉l果。还有,q是一个免费Y件~
TuneUp用另外一U方式获取数据,它计每一处分别花费多长时间去l合自n。你的页面是不是p了很长时间去l徏Q但你又不知道是因ؓ什么缘故花费了q么久,使用TuneUp来查一下吧Q你会发C些你以前从未惛_q的事情。另外,TuneUp是一Ƒּ源YӞ你可以登陆进他们的托服务分享你的结果?/p>
9Q阅d他h的代?/p>
你想成ؓ更优U的程序员吗?那一定要多读代码Q这包括好的、坏的、你自己的、其他h的代码等。阅M码是一很多程序员都不重视的技能,但其实能够快速阅M人的代码q理解其中的含义是一U极光要的能力?/p>
10Q写博客的习?/p>
我个h来说Q当我阅d客的时候我可以扑ֈ所有的信息。大部分时候我是会撰写跟技术相关的要点Q偶讨论点L的话题。写博客是出于分享的原因Q你可以写下能够帮你节约旉的技术技巧,也可以是一些你惌C的技术难点和命o之类?/p>
1. 什么是可擦?Flash)的BIOS ?
BIOS的发x"bye-ose," 是基本输?输出pȝ的羃写。BIOS是机器的g自带的?br />
在电脑没有访问磁盘上E序之前军_机器基本功能的Y件系l。就PC而言QBIOS 包含?br />
控制键盘、显C屏q,盘驱动器,串行通讯讑֤和很多其它功能的代码?br />
一般地QBIOS存储在主板上的ROM 芯片Q所以通常?nbsp;ROM BIOSQ,q确保了BIOS?br />
一般可用性和不会因ؓ盘的问题而损坏。它也确保了机器能够启动。因为RAM 比ROM?br />
速度? 很多的机器制造商设计的BIOS在机器启动时能从ROM被拷贝到RAM去运行,q项技
术也叫shadowing?br />
当今Q很多PC的主杉K有flash BIOS, 意味qBIOS 是存储在可重新改写的flash ?br />
存芯? 如果需要的话改写毫不费力?br />
PC机的BIOS是标准化的,所有的PC在BIOSq一U别上是cM?管因ؓ生商不?br />
QBIOS的版本非常多)。而常说DOS功能是通过盘上的软g实现的, 所以不用更换BIOS
Q你可以很简单地升你的DOSpȝ?br />
能够处理Plug-and-Play (PnP) 讑֤的BIOS?nbsp;PnP BIOS, 或PnP-aware BIOS。一?br />
而言Qflash BIOS都是PnP BIOS?br />
2. 怎么定我的pȝ里是可擦写的BIOSQFlash Bios chipQ?nbsp;?
很简单,把机打开Q揭开BIOS 芯片?一般是28 ?nbsp;32脚的双列直插式集成电路,
上面是脓的是印有BIOS生商的条Q的条Q可以看到芯片的型号。对照下面,你就?br />
以确定系l里是否包含可擦写的BIOS?br />
Am29F010: AMD 5 伏的 flash ROM
Am28F010, Am28F010A: AMD 12 伏的 flash ROM
AT28C010, AT28MC010, AT29C010, AT29LC010, AT29MC010: Atmel 5 伏的 flash ROM
CAT28F010V5, CAT28F010V5I: Catalyst 5 伏的 flash ROM
CAT28F010, CAT28F010I: Catalyst 12 伏的 flash ROM
28F010: FujitsuQ富士通) 12 伏的 flash ROM ?nbsp;ISSI 12 伏的 flash ROM
HN58C1000: HitachiQ东芝) 5 伏的 flash ROM
HN28F101, HN29C010, HN29C010B, HN58C1001, HN58V1001:
Hitachi Q东芝)12 伏的 flash ROM
A28F010, 28F001BX-B, 28F001BX-T, 28F010: Intel 12 伏的 flash ROM
M5M28F101FP, M5M28F101P, M5M28F101RV, M5M28F101VP:
Mitsubishi 12 伏的 flash ROM
MX28F1000: MXIC 12 伏的 flash ROM
MSM28F101: OKI 12 伏的 flash ROM
KM29C010: Samsung 5 伏的 flash ROM
DQ28C010, DYM28C010, DQM28C010A: SEEQ 5 伏的 flash ROM
DQ47F010, DQ48F010: SEEQ 12 伏的 flash ROM
M28F010, M28F1001: SGS-Thomson 12 伏的 flash ROM
28EE011, 29EE010: SST 5 伏的 flash ROM
PH29EE010: SST ROM Chip - 可擦写(FlashableQ?nbsp;
TMS29F010: Texas-Instr. 5 伏的 flash ROM
TMS28F010: Texas-Instr. 12 伏的 flash ROM
W29EE011: Winbond 5 伏的 flash ROM
W27F010: Winbond 12 伏的 flash ROM
X28C010, X28C010I, XM28C010, XM28C010I: XICOR 5 伏的 flash ROM
29LVxxx - 3V Flash memory (较少?
28Cxxx - EEPROM, 和Flash memory 怼
27Cxxx - With window. EPROM: 只读, 一ơ性写入?br />
其它型号开头的字母不是28?9的芯片可能就是普通的ROM?br />
3. 我需要升UBIOS?nbsp;?
升BIOS有很多的理由Q其中有重要的,也有不太重要的。就我们PC用户而言Q最?br />
要的原因是和Windows 有关。如果在一台机器上的BIOSq时了,Windows 的配|就不会
辑ֈ最佳状态?br />
现在市场上出售的盘定w都会q大?28MQؓ了支持这些大定w盘QBIOS必须?br />
持LBA (Logical Block AddressingQ逻辑块寻址) 的技术。如果你?nbsp;BIOS 不支持,?br />
你又想用硬盘的全部定wQ就必须使用?#8220;ƺ骗”BIOS的专用Y件。而这些专用Y件的
使用会让Windows讉K盘旉用兼Ҏ式,造成性能的降低?br />
Z让Windows能充分支持Plug 'n Play 的设备,你也需?nbsp;PnP-BIOS。这也是升
BIOS的重要原因?br />
W三个重要原因就是升UBIOS可以解决以前BIOS的错误(bugsQ?br />
其它不太重要的原因包括:BIOS有新的设|,从光驱启动机器,从SCSI讑֤上启动等
{?br />
4. 从哪儿下载Flash BIOSs ?
a、各大主板厂商的BIOS更新数据相关|址
1Q华ASUShttp://www.asus.com.tw
486电脑BIOS升E序|址Q?nbsp;http://www.asus.com.tw/Products/Bios/bios-486.html ;
Q?br />
Pentium电脑BIOS升E序|址Q?nbsp;http://www.asus.com.tw/Products/Bios/bios-
p54.html Q?br />
Pentium pro和PentiumⅡ电脑BIOS升E序|址Q?nbsp;
http://www.asus.com.tw/Products/Bios/bios-p6.htmlQ?br />
2Q技嘉GIGABYTEhttp://www.giga-byte.com ;Q?br />
Beta BIOSpdhttp://www.giga-byte.com/gigabyte-web/sw_bata.htmQ?br />
AGP BIOSpdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swagp.htm ;Q?br />
Intel 440GX pdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swgx.htm ;Q?br />
Intel 440BX pdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swbx.htm ;Q?br />
Intel 440ZX pdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swzx.htm ;Q?br />
Intel 440EX pdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swex.htm ;Q?br />
Intel 440LX pdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swlx1.htm ;Q?br />
Intel 430TX pdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swtx.htm ;Q?br />
VIA pdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swvia.htm ;Q?br />
ALi pdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swali.htm ;Q?br />
SiS pdQ?nbsp;http://www.giga-byte.com/gigabyte-web/swsis.htm ;Q?br />
其他旧型号主板( http://www.giga-byte.com/gigabyte-web/swother.htm ;Q?br />
3Q微星MSIhttp://www.ecs.com.twQ?br />
MS-41pdLQ?nbsp;http://www.msi.com.tw/chinese/bios/486.htm ;Q?br />
MS-51pdLQ?nbsp;http://www.msi.com.tw/chinese/bios/51.htm ;Q?br />
MS-61pdLQ?nbsp;http://www.msi.com.tw/chinese/bios/61.htm ;Q?br />
4Q升技 [ABIT] http://www.abit.com.tw/html/cload.htm)
5Q联?nbsp;[AIR] http://www.airwebs.com/download.html)
6Q浩?nbsp;[SHUTTLE] ( ftp://ftp.spacewalker.com/bios/)
7Q徏?nbsp;[AOPEN] http://w3.aopen.com.tw/tech/biosdrv.htm)
8Q映?nbsp;[BIOSTAR] http://192.72.144.27/service.htm)
9Q艾?nbsp;[IWILL] http://www.iwill.com.tw/csupport/index_bios.html)
10Q捷?nbsp;[J-BOND] http://www.jbond.com/companyf.html)
11Q迈U?nbsp;[MICRONICS] http://www.micronics.com/)
12Q梅?nbsp;[SOYO] http://www.soyo.com.tw/chinese/product/biosup.htm)
13Q丽?nbsp;[SUPERMICRO] http://www.supermicro.com/download/dlframe.htm)
14Q磐?nbsp;[EPOX] http://www.epox.com/support/bios.html)
15Q忆?nbsp;[EFA] http://www.efa.com.tw/elec/efa/c-service.html)
16Q友?nbsp;[DFI ] http://components.dfiweb.com/support/downloads.asp)
17Q精?nbsp;[ECS] http://www.ecs.com.tw/ecs/ecs/spp-m.htm)
18Q大?nbsp;[LEO] http://www.fic.com.tw/techsupport/bios/index.htm)
19Q迈?nbsp;[MYCOMP] http://www.mycomp-tmc.com/BIOS.htm)
20Q福?nbsp;[FYI] http://www.fyi.com.tw/download-c.htm)
21Q中?nbsp;[ATREND] http://www.atrend.com.tw/download/frame-bios.html)
22Qvz?nbsp;[OCTEK] http://www.oceanhk.com/drivers/others/biso)
23Q宏?nbsp;[ACER] http://www.aopenamerica.com/tech/mainbd/default.htm)
24Q联?nbsp;[QDI] http://www.qdigrp.com/driver.htm)
25Q宏?nbsp;[PCCHIPS] http://www.pcchips.com.tw/BIOS.html)
26Q捷?nbsp;[JETBOARD] http://www.jetway.com.tw/evisn/jwd/jwd01/index.html)
27Q联?nbsp;[DATAEXPERT] http://www.dataexpert.com.tw/service/)
28Q皇?nbsp;( http://megastar.kamtronic.com
29Q承? http://www.chintech.com.tw
30Q钻? http://www.dfiweb.com
31Q致? http://www.gvc.com.tw
32Q英特尔( http://www.intel.com
33Q华? http://www.zida.com
34Q麒? http://www.pcchips.com
b、主?nbsp;BIOS 生公司|站
Award BIOS 公司 (国) http://www.award.com/Q?br />
Award BIOS 公司 (台湾) http://www.award.com.tw/Q?br />
Award 技术咨询中?nbsp;Q只限emailQmailto:support@unicore.com Q?br />
AMI BIOS 公司 http://www.amibios.com/Q?br />
Microid Research http://www.mrbios.com/Q?br />
Micro Firmware , 开发ƈ发行Phoenix BIOS及升UBIOS数据文g
http://www.firmware.com/Q?br />
Phoenix BIOS 公司 http://www.phoenix.com/Q?br />
Unicore Q提供BIOS升数据文g Q只限Award BIOS?nbsp;http://www.unicore.com/
5. L的名UC知道怎么?nbsp;?
如果你的BIOS是Award BIOS, 你可以向award888@ms1.hinet.net?br />
support@unicore.com发封邮gQ里面附上你的BIOS?) 版本?nbsp;2) pd?part
number) 3) 发布日期。award的系列号包含了它所支持芯片的信息。这个信息出现在机器
启动后,屏幕昄正在q行内存验的时刻。这时按PAUSE键,可以读pdPBIOS?br />
日期和版本了。不q,有的L生商把q个信息去除了,你只有向他们查询?br />
6. 如何升我的BIOS ?
升BIOS需?) BIOS的读写程序( flasherQ?nbsp;?nbsp;2) BIOS的最新数据文件。读写程
序将把这个数据文件写入到BIOS的芯片里。下面是不同BIOS的升U命令:
awdflash xxx.bin (?nbsp;Award BIOSs)
amiflash xxx.bin (?nbsp;AMI BIOSs)
mrflash xxx.bin (?nbsp;MRBIOSs)
注意Q?br />
a?nbsp;在读写器要求你存储当前的BIOSӞ?#8220;YES”Q这样在升BIOS时如果出现问
题了q可以恢复原来的BIOS?br />
b、有些主板生产商提供自己的升UY件程序(一般不能拷贝)Q注意在升前在
BIOS里把“System BIOS Cacheable”的选项设ؓNO?br />
c、千万不要用错误的BIOS数据文gQ否则你的机器就不能启动了?br />
7. 升Award BIOS时出现提C?#8220;Insufficient memory Q内存不I”怎么办?
解决Ҏ有:
a. 在CMOS ?#8220;Chipset Features”的设|里Q?nbsp;Disable?#8220; Video Bios
Cacheable”?br />
b. ?nbsp;Esc,F10,存储退出?br />
c. 重启动,在出?Windows Starting" 时按Ctrl+F5,q可以不加蝲Drvspace.binQ?br />
省了大约108K 的内存空间?br />
d. 开始升UBIOS Q重启动?br />
e. 重进入CMOS?#8220;Chipset Features”的设|里Q?nbsp;Enable“ Video Bios
Cacheable”。按 Esc,F10,存储退出?br />
9. 如何恢复损坏的BIOS ?
Ҏ一Q利用根区BIOSQBoot-block BIOSQ?br />
当今大多数基于AWARD BIOS的主杉K都有根区BIOSQ这是个在升UBIOS时不会被覆盖
的一部分BIOS。它只支持很基本的硬件如QY盘等。如果你的显卡是PCI的,在BIOS?br />
损坏后你的屏q将是漆黑一片,因ؓ根区BIOS只支持ISA 的显卡?br />
根区BIOS 可以执行可引DY盘上的AUTOEXEC.BAT。这h们可以把Award flasher
和正的 BIOS 文gQ?.bin Q放在Y盘上q在AUTOEXEC.BAT 里加入BIOS升命o?br />
Ҏ? 得到新的BIOS芯片
a、联pM板生产商Q看是否他们能提供BIOS芯片。有些生产商是免Ҏ供的?br />
b、联pd相关芯片的电脑公司,如Unicore Softwarehttp://www.unicore.com/Q?nbsp;
?nbsp;Midco Computers (以前?nbsp;RC Systems公司http://www.midcocomputers.com/)。下
面是Midco的一D广?
"我们向公众提供BIOS的更换芯片。请讉K www.midcocomputers.com Q我们将乐意帮助
你?nbsp;"
Ҏ三:热交?br />
注意Q本ZҎҎD的Q何问题负责,风险自负?br />
用另外一块可以正怋用的BIOS芯片来更换当前损坏的芯片Q而正常BIOS芯片的主?br />
必须量和损坏的一致。在正常芯片的机器上先把“System BIOS cacheable”设ؓ
ENABLEQ进入DOS后,把正常的芯片拔掉Q用损坏的芯片来替代Q然后正地升BIOS?br />
可?br />
注意Q徏议用MRBIOS的读写程序,他们的品名声最好。可以访?br />
ftp://ftp.mrbios.com扄兌Y件?br />
Ҏ? (适用于INTELL)
把Flash Recovery 的蟩U放在recovery mode的位|,把可启动的BIOS升软盘攑օ
Q启动机器?br />
因ؓ没被覆盖的根区BIOS不支持PCI的显卡,q时屏幕上什么都没有。你可以通过鸣笛?br />
和Y盘LED来观察。当机器响了一下,接着软盘的LED亮时Q系l就正在升你的BIOS。当
软盘的LED灯灭Ӟ说明恢复已完成,x。把跳线恢复到缺省位|,重启动l恢复?br />
10. 如果我的BIOS有问题而目前又找不到升U文件怎么办?
可以试着扑ֈL型号不同但BIOS生商相同的BIOS。下面的文字是从新闻l里摘录
的:
“最q我在本人的Triton 芯片l的L上进行了一pd的BIOS的测试,是ؓ了检?br />
一U主板能否用不同主板生产商提供的BIOS。结论是Q大多数是可以的。所以,即?br />
不同生商提供的BIOS也可以一定限度地通用?br />
实验内容Q我惛_U我的Amptron PM7700B L的BIOSQ版本号从v4.50PG BIOS ?br />
v4.51PGQ希望能U正甉|理斚w的错误(昄器随机空白,盘老处?#8220;睡眠”状?br />
Q。我的机器配|是QMaxtor 1.6GB 盘QIDE0的master模式Q? Aztech?nbsp;4x CD-ROM
QIDE1的Slave模式Q? SB16声卡, AMD 5x86-75 频?0MHz (老式的SSA-5 版本).
实验里所使用的BIOS有:ASUSQ华)460FXL使用的Award v4.51PGQFIC的PT-
2003 430FXL使用的Award v4.50PGQECS TR5510L使用?nbsp;Award v4.51PGQ还?br />
Shuttle HOT-541 L使用的Award v4.51PG?br />
h意,如果L生商提供的BIOS升E序和其他的不同Q比如华)Q它׃?br />
被用来升U别的主板的BIOS。所以,除了华硕的主板,AWDFLASH v5.2 都能利地升U其
他主板BIOS?br />
W者还发现QMR-BIOS?9C010.EXE (请用和你的L芯片l相W合的YӞ能更
新所有主板的BIOS。ftp://ftp.mrbios.com里你可以扑ֈ29C010.EXE ?nbsp;28F010.EXE
Q在那里长度大于60k的zip文g里有不少好的东西?br />
l果Q?br />
a、华( ASUS QBIOS 工作正常, 但内存只到8MBQ实际上?6MBQ,因ؓ?br />
存的原因Q?nbsp;Win95q?#8220;发现”了不新的设备?br />
b、升U了FIC 430FX BIOS, 机器不能讉K软盘Q尝试后Q系l死机)Q但盘正常
启动和工作?br />
c、ECS TR5510 BIOS 表现最好,最l我也采用了它。它解决了电源管理的错误Q还
解决了以前按SHIFT-F5不能直接q入UDOS模式的问题。(该问题估计是Amptron?nbsp;BIOS
和AMD 5x86 CPU不兼容的~故Q同Ӟ在WinTune96的测试下内存和硬盘的讉K速度也增
加了几个MB/S?br />
d、Shuttle HOT-541 BIOS和ESC的BIOS一P解决了同L问题。但在win95下,?br />
能直接检到光驱?br />
l论Q?br />
a、所有实验用的BIOS都没有导致永久性的、不可恢复性的错误Q?0-100% 的功能都
正常(ECS的甚臌决了原Amptron BIOS的问??br />
b、如果你也想试q样的作法,误住一定要使用相同芯片l的BIOS升文gQ输
?输出QI/OQ的芯片也要和你自己的相同。我L上所使用的I/O 芯片是UM8669 。如
果你的I/O芯片不同Q升U后可能会导致串口不工作或更p的l果?br />
c、在盘里保存一份完好的BIOS文g和升UY件。避免如果Y盘不能启动,恢复?br />
了BIOS的情c?nbsp;
d、实验用的BIOS没有一U让我的机器变得d毁坏Q不q你的运气就不一定这么好
了?br />
e、一般初学者不要用不同生产商提供的BIOSQ除?br />
1) 你有EPROM烧录器,写片BIOS芯片对你来说非常Ҏ?br />
2) 你有同种cd的芯片,能非常熟l地*?#8220;热插?#8221;技术?br />
3) 你有冒险的勇气?br />
11. 在Award或AMI的网站里Z没有我的BIOS的升U文?nbsp;?
Award 和AMI会ؓ特定的主板生产商提供W合特定L和芯片组的BIOS升文gQ然
后生产商再利用Award/AMI提供的工? 对这些BIOS文g作出最后的修改和优化?br />
也就是说Q生产商比Award/AMI更了解他们的LQ能提供更好的BIOS升?br />
注意Qhttp://www.award.com.tw/download/bios/里包括了好多L如ali、cyrix
、intel、opti、sis 、via的BIOS升文g。不q你最好先在主板生产商自己的网里?br />
升文gQ如果没有的话,才来此处下蝲?br />
12. 在哪儿能扑ֈ我的BIOS的技术帮?nbsp;?
在你L的网站上Q如果有的话Q,有问题也可以向他们发电子邮g?br />
13. PROM, EPROM, EPROM q些名词代表什?nbsp;?
PROM (可编E只d储器 programmable read-only memory) 是数据只可写入一ơ的
存储器芯片。一旦数据写入到PROM, 永久保存。不象PCpȝ里的内存QPROM在关机时?br />
面的信息依然保存?br />
PROM ?nbsp;ROM (只读存储? 的差异是PROM 生出来后是I白的存储器Q而ROM在生
产出来后已l被写入信息了。要惛_入到PROM Q需要特D的讑֤--PROM ~程器或PROM
烧录器?br />
EPROM (可擦除可~程只读存储器erasable programmable read-only memory)属于?br />
D的一U?nbsp;PROMQ内部的信息可以用外线来擦除。一旦擦除后Q就可以被写入信息?br />
而EEPROM和PROMcM, 但擦除时需要电而不是外线。EEPROM(甉|除可~程只读?br />
储器 electrically erasable programmable read-only memory)和PROM一Px后信
息不会消失,没有RAM快?br />
一U特D的EEPROM, UC为flash EEPROM, 在电脑里可以被重写,不再需要特D的?br />
录器。我们常说的可读写式BIOS的芯片就是有它们构成的?br />
14. Award Flasher 5.33 有什么新的功?
Award BIOS 的二q制数据文g的文件名一般是和BIOSpd号一致的。因为文件名?br />
cMQ用户可能偶然失误用错误的数据文g?br />
Z避免q个问题Q在新版?nbsp;AWDFLASH.EXE version 5.33增加了检的功能Q如?br />
它发现用户用的数据文g和主板的型号不符报警,报警信息是:“The program
file's part number does not match with your system ”
如果你认׃会犯q样的错误,可以?#8220;/Py”PASS掉检功能:Awdflash
2Axxxxxx.BIN /Py
15. Z在网站里不再有MRBIOS 的Y?nbsp;?
因ؓ他们不再属于׃n软g了,需要请ftp://ftp.mrbios.com里找找。最新MRBIOS
的版本是3.42 ?br />
16. 在DEBUG里如何恢复BIOS的出厂|
a、针对AMI/Award BIOS:
C:\DEBUG (在纯DOS下,不是windows里的DOSH口)
-O 70 17
-O 71 17
Q
b、针对Phoenix BIOS:
C:\DEBUG (在纯DOS下,不是windows里的DOSH口)
-O 70 FF
-O 71 17
Q
17. 我的密码忘了Q如何破解BIOS里的密码保护?
a、针?nbsp;Award BIOS:
试试下面的密? AWARD_SW, j262 , HLT, SER, SKY_FOX, BIOSTAR, ALFAROME,
lkwpeter,
j256, AWARD?SW, LKWPETER, Syxz, aLLy, 589589, 589721, awkward, CONCAT
也可在网上下载有关的破解E序?br />
b、针对AMI BIOS:
试试下面的密?AMI, BIOS, PASSWORD, HEWITT RAND, AMI?SW, AMI_SW, LKWPETER,
A.M.I.
也可在网上下载有关的破解E序?br />
18. AMI BIOS 的鸣W有何含义?
除去8声鸣W,其他的都会造成机器不能启动Q?br />
1 声鸣W?nbsp;hp|
2 声鸣W?nbsp;?偶校验错?br />
3 声鸣W?nbsp;基本64K 内存错误
4 声鸣W?nbsp;定时器失?br />
5 声鸣W?nbsp;处理器错?br />
6 声鸣W?nbsp;8042 ?nbsp;A20信号错误
7 声鸣W?nbsp;处理器特D中断错?br />
8 声鸣W?nbsp;昑֭?写错?br />
9 声鸣W?nbsp;ROM 校验错误
10 声鸣W?nbsp;CMOS 关闭寄存器读/写错?br />
11 声鸣W?nbsp;Cache 内存损坏
19. 如何解决上述的鸣W错误?
? ?nbsp;2? 声鸣W,可以试着重安装内存条Q如果错误仍然存在,更换好的内存?br />
?br />
??? ?0声鸣W,到经销商处更换L?br />
?声鸣W,重新安装键盘控制器芯片。如果错误l,更换该芯片。如果错误l?br />
Q检查和键盘有关的部Ӟ如更换好的键盘,查主板上是否有键盘保险丝?br />
?声鸣W, 更换昑֍或显存?br />
?声鸣W,更换BIOS芯片?br />
如果没有M鸣笛Q而显C器上漆黑一片,先检查电源,q接L上的POWER LED?br />
LED上,如果LED亮,而驱动器有{动的声音p明电源是好的?br />
接着Q检查主板上有没有松动的部g。松动的处理器,BIOS芯片Q晶振或芯片l都?br />
DL不工作?br />
接着Q除了显卡,把所有的插卡都拔掉。这时系l至能加电q出现显卡信息。然?br />
Q再一ơ一个地插卡Q直到问题出现?br />
上述Ҏ失效的话Q只有到l销商更换主板了?br />
20. 如何在MRBIOS里插入NCR SCSI BIOS v3.07 ?nbsp;4.03 Q?br />
其实很简单,不过针对不同版本的mr biosҎ也不同?br />
首先Q到Windows95.com 下蝲'Hex Workshop'Q它能在二进制状态下~辑文g。插?br />
SCSI BIOS的原理就是把 mr bios前面没用的空间删除,在附加上NCR 的flash BIOSQ然
后存储文件?br />
管mr bios |站上说它的BIOS大小?2kQ可下蝲后文仉度要大于q个倹{用?br />
q的二进制编辑Y件把它前面的I格删除Q以保正长度?2k。再NCR v3.07 的BIOS q?br />
加上Q这h仉度就?08k (92k + 16k NCR v3.07 )Q?nbsp;也可q加32k?nbsp;NCR v4.03Q?br />
长度?24k.
21. 如何对INTEL OEML升它的Intel AMI BIOSQ?nbsp;
比如Q想?.00.xx.CB0H 升?.00.xx.CB0?1.00.xx.CB0H"里的H表示q是INTEL
为其他主板生产商Q此处代表VOBIS公司Q制造的OEMLQ所以下面的Ҏ也适用于Q?br />
使用AMI BIOS的INTEL OEML Q比如从1.00.xx.BC0R升?.00.xx.BC0?br />
背景资料Q?br />
"1.00.xx.CB0"的BIOS是AMI为Intel的主板芯片组特制?也叫"Advanced-E/V"L)
Q然后主板生产商VOBIS再对它作E微的修改,UC?1.00.xx.CB0H"。很可能字母"H"?br />
?nbsp;他们生PC上标注的"HIGHSCREEN" 。所以,我们可以使用常见的AMI的BIOS来升U它
?br />
你可以ftp://download.intel.nl/design/motherbd/ev/里下?1.00.xx.CB0"?br />
BIOS版本Q版本号?2, 03, 04, 05 ?nbsp;06 。如果你现在试着用这些BIOSQ就会有错误
信息Q?nbsp;"the data are corrupt or you are using a wrong BIOS"Q数据错误或BIOS?br />
件有误)。原因就是INTEL提供的BIOS的ID字符串只?.00.02.CB0Q与机器中现有的
1.00.02.CB0H不符,所以升U程序不执行Q升U失败?br />
解决ҎQ?br />
a. 下蝲和目前机器里版本L同的1.00.02.CB0 和最新版本号?.00.06.CB0?br />
b. 按照|页"http://developer.intel.com/design/motherbd/genbios.htm";的指?br />
Q创?张启动盘Q一个版本号一个?br />
c. ?.00.02.CB0的Y盘里Q有文g"1002cb0_.bio" ?1002cb0_.bi1"。用文本~?br />
辑器把里面的"CB0 " (注意CB0后面的空g能省? 替换?nbsp;"CB0H"。每个文件只有一?br />
Q只能替换一处?br />
d. 用修改的启动盘引导机器,令h惊奇的是现在机器的BIOS-ID 变成?.00.02.CB0
Q而不?.00.02.CB0H?br />
e. 用另一张启动盘Q?.00.06.CB0Q引|q升U成功,当前的BIOS版本?br />
1.00.06.CB0?br />
注意Q?br />
a. Intel提供的升UY件有保存当前BIOS的功能,应该使用它ƈ创徏一启动盘。这?br />
升出现问题Ӟ可以利用L提供的BIOS-recovery跳线Q来恢复原来的BIOS?br />
b. 有可能直接修?6版本L启动盘,而升U成功?br />
c. 如果VOBIS不仅往BIOS里添加了他们的公司名Q还作了功能性的修改Q上q的*?br />
有一定的风险?br />
22. 如何对INTEL OEML升它的Intel Phoenix BIOS Q?br />
a、到INTEL的网站上下蝲针对该主板的最新的BIOSQ把它放在一张可启动的Y盘里?br />
b、进入BIOSQ?nbsp;enable选项'Check for User Flash ROMS' Qƈx?br />
c、把L上的BIOS跳线讄为RECOVERY模式。将启动盘放入引导机器,它将自动q?br />
入恢复程序,q加载Y盘里最新的BIOS?br />
d、关机,恢复BIOS跳线到正常模式,开机即可?br />
23. 如何更换Award BIOS启动时的EPA logo 画面Q?br />
a、首先,要有BIOS数据文gQ?nbsp;*.BIN Q用来先~辑再写入BIOS里,要确认该文g?br />
你主板是对应的?br />
b、http://members.aol.com/mrosenb257/下蝲BMPtoEPAQ?nbsp;BMPtoEPA是个自由软g
Q运行于Windows9x下,能把BMP 文g转换为EPA ?br />
c、有了需要的EPA 文g后,要找C用Y件CBROM ?nbsp;CBROM6Q它能把EPA文g攑֜
*.BIN文g里,格式为:cbrom *.BIN /EPA savedEPA.epa Q?.BIN 是BIOS数据文gQ?br />
savedEPA.epa是需要的EPA文gQ。另外,CBROM 适用于Award V4.51 Q而CBROM6适用?br />
Award V6.0 ?br />
d、现在就可以升你的BIOS了,成功后EPA logo画面变成你需要的了?br />
24. 如何在windows里避?#8220;IRQ Routing Table errors”Q?br />
如果你主板用的是VIA芯片l,需要安装最新的VIA IRQ Routing的补丁Y?br />
http://www.via.com.tw/Q?br />
如果q不行,在BIOS里disable?nbsp;'OnChip USB'。如果成功的话,应和主板生?br />
商联p获得最新的BIOS。(比如QShuttle HOT591P L有q种情况Q升UBIOS后就?br />
问题了。)