<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>shanghuo.net(上火网)</title>
		<link>http://www.shanghuo.net/</link>
		<description>人间五十年，万事如梦幻。一度生存者，岂有长不灭？</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>shanghuo Version 1.6 Build 20071004</generator>
		<lastBuildDate>Thu, 21 Aug 2008 01:47:01 +0000</lastBuildDate>
		<ttl></ttl>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=299</guid>
			<title>10个你闻所未闻的奇趣网站</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>1、Google推出的3维聊天空间，可以设计自己的形象和房间<br />
<a href="http://www.lively.com/" target="_blank">http://www.lively.com/</a><br />
2、可以在线听和免费下载最新《读者》《科幻世界》等著名杂志有声版，不用再买杂志<br />
<a href="http://www.ilisten.cn/ZZ" target="_blank">http://www.ilisten.cn/ZZ</a><br />
3、可以一键免费把自己博客印成书的网站<br />
<a href="http://blog.mrprint.cn/" target="_blank">http://blog.mrprint.cn</a><br />
4、可以修改每一本书内容的在线图书馆<br />
<a href="http://www.bookgg.com/library.asp" target="_blank">http://www.bookgg.com/library.asp</a><br />
5、一个比Google还强，每天看别人在搜索什么东西的搜索引擎<br />
<a href="http://www.bearsou.com/" target="_blank">http://www.bearsou.com</a><br />
6、每天可以免费买彩票，每天百万现金奖的精彩网站<br />
<a href="http://www.lotcome.com/" target="_blank">http://www.lotcome.com</a><br />
7、可以访问任何网页的Google隐藏入口<br />
<a href="http://www.google.com/gwt/n" target="_blank">http://www.google.com/gwt/n</a><br />
8、可以把你的网址缩短的网站<br />
<a href="http://tinyurl.com/" target="_blank">http://tinyurl.com/</a><br />
9、爱因斯坦写汉字　<br />
<a href="http://www.sbfun.org/einstein/index.php" target="_blank">http://www.sbfun.org/einstein/index.php</a> <br />
10、你可以在线做个以自己照片做硬币人物的硬币图片，好酷哦！！ <br />
<a href="http://onlinewahn.de/generator/m-maker.htm" target="_blank">http://onlinewahn.de/generator/m-maker.htm</a></p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=299</link>
			<category domain="http://www.shanghuo.net/?cid=3">生活</category>
			<pubDate>2008-08-14 12:02</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=298</guid>
			<title>editplus中使用正则进行替换查找</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>EditPlus 支持以下的正则表达式，可以用于 查找， 替换 和在文件中查找等命令<br />
<br />
<br />
表达式&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;说明<br />
\t&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;制表符.<br />
\n&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;新行.<br />
.&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;匹配任意字符.<br />
|&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;匹配表达式左边和右边的字符. 例如, &quot;ab|bc&quot; 匹配 &quot;ab&quot; 或者 &quot;bc&quot;.<br />
[]&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;匹配列表之中的任何单个字符. 例如, &quot;[ab]&quot; 匹配 &quot;a&quot; 或者 &quot;b&quot;. &quot;[0-9]&quot; 匹配任意数字.<br />
[^]&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;匹配列表之外的任何单个字符. 例如, &quot;[^ab]&quot; 匹配 &quot;a&quot; 和 &quot;b&quot; 以外的字符. &quot;[^0-9]&quot; 匹配任意非数字字符.<br />
*&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;其左边的字符被匹配任意次(0次，或者多次). 例如 &quot;be*&quot; 匹配 &quot;b&quot;, &quot;be&quot; 或者 &quot;bee&quot;.<br />
+&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;其左边的字符被匹配至少一次(1次，或者多次). 例如 &quot;be+&quot; 匹配 &quot;be&quot; 或者 &quot;bee&quot; 但是不匹配 &quot;b&quot;.<br />
?&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;其左边的字符被匹配0次或者1次. 例如 &quot;be?&quot; 匹配 &quot;b&quot; 或者 &quot;be&quot; 但是不匹配 &quot;bee&quot;.<br />
^&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;其右边的表达式被匹配在一行的开始. 例如 &quot;^A&quot; 仅仅匹配以 &quot;A&quot; 开头的行.<br />
$&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;其左边的表达式被匹配在一行的结尾. 例如 &quot;e$&quot; 仅仅匹配以 &quot;e&quot; 结尾的行.<br />
()&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;影响表达式匹配的顺序，并且用作表达式的分组标记.<br />
\&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;转义字符. 如果你要使用 &quot;\&quot; 本身, 则应该使用 &quot;\\&quot;.<br />
<br />
表达式的分组使用()来标记. 表达式的分组可以被引用为 \0, \1, \2, \3, 等等. \0 表示被匹配的所有字符串. \1 表示被匹配的第一个分组, \2 表示第二个分组, 依此类推. 举例如下.<br />
<br />
原文&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;查找&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;替换&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;结果<br />
abc&nbsp; &nbsp;&nbsp;&nbsp;(ab)(c)&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;\0-\1-\2&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;abc-ab-c <br />
abc&nbsp; &nbsp;&nbsp;&nbsp;a(b)(c)&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;\0-\1-\2&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;abc-b-c <br />
abc&nbsp; &nbsp;&nbsp;&nbsp;(a)b(c)&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;\0-\1-\2&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;abc-a-c</p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=298</link>
			<category domain="http://www.shanghuo.net/?cid=10">读书</category>
			<pubDate>2008-08-10 21:24</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=297</guid>
			<title>循环建立目录的函数</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p><font color="#ff8000">/**<br />
* 按指定路径生成目录<br />
*<br />
* @param&nbsp;&nbsp;&nbsp;&nbsp;string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$path&nbsp;&nbsp;&nbsp;&nbsp;路径<br />
*/<br />
</font><font color="#007700">function </font><font color="#0000bb">mkDirs</font><font color="#007700">(</font><font color="#0000bb">$path</font><font color="#007700">)<br />
{<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000bb">$adir </font><font color="#007700">= </font><font color="#0000bb">explode</font><font color="#007700">(</font><font color="#dd0000">'/'</font><font color="#007700">,</font><font color="#0000bb">$path</font><font color="#007700">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000bb">$dirlist </font><font color="#007700">= </font><font color="#dd0000">''</font><font color="#007700">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000bb">$rootdir </font><font color="#007700">= </font><font color="#0000bb">array_shift</font><font color="#007700">(</font><font color="#0000bb">$adir</font><font color="#007700">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;if((</font><font color="#0000bb">$rootdir</font><font color="#007700">!=</font><font color="#dd0000">'.'</font><font color="#007700">||</font><font color="#0000bb">$rootdir</font><font color="#007700">!=</font><font color="#dd0000">'..'</font><font color="#007700">)&amp;&amp;!</font><font color="#0000bb">file_exists</font><font color="#007700">(</font><font color="#0000bb">$rootdir</font><font color="#007700">))<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</font><font color="#0000bb">mkdir</font><font color="#007700">(</font><font color="#0000bb">$rootdir</font><font color="#007700">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;foreach(</font><font color="#0000bb">$adir </font><font color="#007700">as </font><font color="#0000bb">$key</font><font color="#007700">=&gt;</font><font color="#0000bb">$val</font><font color="#007700">)<br />
&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000bb">$dirlist </font><font color="#007700">.= </font><font color="#dd0000">&quot;/&quot;</font><font color="#007700">.</font><font color="#0000bb">$val</font><font color="#007700">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</font><font color="#0000bb">$dirpath </font><font color="#007700">= </font><font color="#0000bb">$rootdir</font><font color="#007700">.</font><font color="#0000bb">$dirlist</font><font color="#007700">;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(!</font><font color="#0000bb">file_exists</font><font color="#007700">(</font><font color="#0000bb">$dirpath</font><font color="#007700">))<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</font><font color="#0000bb">mkdir</font><font color="#007700">(</font><font color="#0000bb">$dirpath</font><font color="#007700">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</font><font color="#0000bb">chmod</font><font color="#007700">(</font><font color="#0000bb">$dirpath</font><font color="#007700">,</font><font color="#0000bb">0777</font><font color="#007700">);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />
&nbsp;&nbsp;&nbsp;&nbsp;}<br />
} </font></p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=297</link>
			<category domain="http://www.shanghuo.net/?cid=2">php学习</category>
			<pubDate>2008-08-10 21:24</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=296</guid>
			<title>四个PHP应用小函数</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>一、怎样查看变量内容 <br />
php4中有一个var_dump($var)函数，用来dump一个变量的内容（各种类型的变量），只 <br />
是这个函数的输出不适合在html页面中显示。可以自己写一个函数如下： <br />
function dump( $var ) { <br />
echo &quot;&lt;pre&gt;\n&quot;; <br />
var_dump( $var ); <br />
echo &quot;&lt;/pre&gt;\n&quot;; <br />
} <br />
非常适合调试！ <br />
在php3中，最多只能用递归的方法dump出一个array的内容，对于object就无能为力了。 <br />
好像上一篇的Dump_Array函数就是这样的函数。 :) <br />
二、静态变量 <br />
&lt;? <br />
function test() <br />
{ <br />
static $s_val; <br />
$s_val+=2; <br />
return $s_val; <br />
} <br />
echo test();//2 <br />
echo test();//4 <br />
?&gt; <br />
三、避免同名人出现多次的一种方法 <br />
#----------------avoid the same name------------- <br />
for($checkname=0;$checkname&lt;$num;$checkname++) <br />
{ <br />
if ($name[$checkname]==$name[$num]) <br />
{ <br />
$num--; <br />
break; <br />
} <br />
} <br />
四、取得一个文件的扩展名 <br />
用这个小函数即可： <br />
function fileextname($filename) <br />
{ <br />
$retval=&quot;&quot;; <br />
$pt=strrpos($filename, &quot;.&quot;); <br />
if ($pt) $retval=substr($filename, $pt+1, strlen($filename) - $pt); <br />
return ($retval); <br />
<br />
}</p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=296</link>
			<category domain="http://www.shanghuo.net/?cid=2">php学习</category>
			<pubDate>2008-08-10 21:22</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=295</guid>
			<title>PHP中$_SERVER全局环境变量的详细解释</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名，与 document root相关。<br />
$_SERVER['argv'] #传递给该脚本的参数。 <br />
$_SERVER['argc'] #包含传递给程序的命令行参数的个数（如果运行在命令行模式）。 <br />
$_SERVER['GATEWAY_INTERFACE'] #服务器使用的 CGI 规范的版本。例如，&ldquo;CGI/1.1&rdquo;。<br />
$_SERVER['SERVER_NAME'] #当前运行脚本所在服务器主机的名称。 <br />
$_SERVER['SERVER_SOFTWARE'] #服务器标识的字串，在响应请求时的头部中给出。 <br />
$_SERVER['SERVER_PROTOCOL'] #请求页面时通信协议的名称和版本。例如，&ldquo;HTTP/1.0&rdquo;。 <br />
$_SERVER['REQUEST_METHOD'] #访问页面时的请求方法。例如：&ldquo;GET&rdquo;、&ldquo;HEAD&rdquo;，&ldquo;POST&rdquo;，&ldquo;PUT&rdquo;。 <br />
$_SERVER['QUERY_STRING'] #查询(query)的字符串。 <br />
$_SERVER['DOCUMENT_ROOT'] #当前运行脚本所在的文档根目录。在服务器配置文件中定义。<br />
$_SERVER['HTTP_ACCEPT'] #当前请求的 Accept: 头部的内容。 <br />
$_SERVER['HTTP_ACCEPT_CHARSET'] #当前请求的 Accept-Charset: 头部的内容。例如：&ldquo;iso-8859-1,*,utf-8&rdquo;。<br />
$_SERVER['HTTP_ACCEPT_ENCODING'] #当前请求的 Accept-Encoding: 头部的内容。例如：&ldquo;gzip&rdquo;。<br />
$_SERVER['HTTP_ACCEPT_LANGUAGE']#当前请求的 Accept-Language: 头部的内容。例如：&ldquo;en&rdquo;。<br />
$_SERVER['HTTP_CONNECTION'] #当前请求的 Connection: 头部的内容。例如：&ldquo;Keep-Alive&rdquo;。 <br />
$_SERVER['HTTP_HOST'] #当前请求的 Host: 头部的内容。 <br />
$_SERVER['HTTP_REFERER'] #链接到当前页面的前一页面的 URL 地址。 <br />
$_SERVER['HTTP_USER_AGENT'] #当前请求的 User_Agent: 头部的内容。 <br />
$_SERVER['REMOTE_ADDR'] #正在浏览当前页面用户的 IP 地址。 <br />
$_SERVER['REMOTE_HOST'] #正在浏览当前页面用户的主机名。 <br />
$_SERVER['REMOTE_PORT'] #用户连接到服务器时所使用的端口。 <br />
$_SERVER['SCRIPT_FILENAME'] #当前执行脚本的绝对路径名。 <br />
$_SERVER['SERVER_ADMIN'] #管理员信息 <br />
$_SERVER['SERVER_PORT'] #服务器所使用的端口 <br />
$_SERVER['SERVER_SIGNATURE'] #包含服务器版本和虚拟主机名的字符串。 <br />
$_SERVER['PATH_TRANSLATED'] #当前脚本所在文件系统（不是文档根目录）的基本路径。 <br />
$_SERVER['SCRIPT_NAME'] #包含当前脚本的路径。这在页面需要指向自己时非常有用。 <br />
$_SERVER['REQUEST_URI'] #访问此页面所需的 URI。例如，&ldquo;/index.html&rdquo;。 <br />
$_SERVER['PHP_AUTH_USER'] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的用户名。 <br />
$_SERVER['PHP_AUTH_PW'] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是用户输入的密码。 <br />
$_SERVER['AUTH_TYPE'] #当 PHP 运行在 Apache 模块方式下，并且正在使用 HTTP 认证功能，这个变量便是认证的类型。</p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=295</link>
			<category domain="http://www.shanghuo.net/?cid=2">php学习</category>
			<pubDate>2008-08-10 21:21</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=294</guid>
			<title>一个文件分布函数</title>
			<author>jiashixiang</author>
			<description><![CDATA[<div id="code0" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">function getFullNameByAppid($appId, $type, $res_type,$name=&quot;&quot;)<br />
{<br />
&nbsp; &nbsp; &nbsp; &nbsp; $hashValue = md5($appId);<br />
&nbsp; &nbsp; &nbsp; &nbsp; $dirOne = substr($hashValue,24,8)%1024;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $dirTwo = substr($hashValue,16,8)%1024;<br />
&nbsp; &nbsp; &nbsp; &nbsp; $dirTree= substr($hashValue,8,0)%1024;<br />
&nbsp; &nbsp; &nbsp; &nbsp; if( $dirOne &lt;= 341 )<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dir &nbsp; &nbsp; &nbsp; &nbsp; = FILE_PATH_BASE.SERVER1.$res_type.'/'.$dirOne.'/'.$dirTwo.'/'.$dirTree.'/';<br />
&nbsp; &nbsp; &nbsp; &nbsp; elseif( $dirOne &lt;= 682 )<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dir&nbsp; &nbsp; = FILE_PATH_BASE.SERVER2.$res_type.'/'.$dirOne.'/'.$dirTwo.'/'.$dirTree.'/';<br />
&nbsp; &nbsp; &nbsp; &nbsp; elseif( $dirOne &lt;= 1024 )<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $dir&nbsp; &nbsp; = FILE_PATH_BASE.SERVER3.$res_type.'/'.$dirOne.'/'.$dirTwo.'/'.$dirTree.'/';<br />
&nbsp; &nbsp; &nbsp; &nbsp; else&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; {echo ' system error: file save error!\n ';exit;}<br />
&nbsp; &nbsp; &nbsp; &nbsp; return $filename = $dir.md5($appId.'l'.mktime().$name).&quot;.&quot;.$type;<br />
}</div>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=294</link>
			<category domain="http://www.shanghuo.net/?cid=2">php学习</category>
			<pubDate>2008-08-10 21:19</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=293</guid>
			<title>fckeditor配置详解(php)</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>前言：<br />
FCKeidtor是个国外的多语言编辑器，你可以对其配置文件进行简单修改使之支持目前常用Web开发语言的应用，下面我就讲讲FCKeditor的最新版本2.4.2在php的具体配置过程，有不足和出错的地方，欢迎指正。<br />
<br />
精简：<br />
正因为这个编辑器是支持多语言的，所以首先我们针对使用对其做相应的冗余文件删除。<br />
<br />
1、临时文件及文件夹删除：从根目录下开始删除一切以&ldquo;_&rdquo;开头的文件及文件夹，因为他们为临时文件和文件夹。删除这类临时文件及文件夹之后，我们还要删除一些根目录下的多余文件，根目录下我们只保留fckconfig.js（配置文件）、fckeditor.js（js方式调用文件）、fckeditor.php（php方式调用文件，新版本通过该文件统一调用php4或者php5的调用文件，fckeditor_php4.php/fckeditor_php5.php你可以根据自己服务器使用的情况删减，建议都保留）、fckeditor_php4.php（php4的调用文件）、fckeditor_php5.php（php5的调用文件）、fckstyles.xml（样式）、fcktemplates.xml（模板）文件和editor文件夹。 <br />
<br />
2、editor\lang目录：存放的是多语言配置文件，因为我们只可能用到en和zh-cn（简体中文）所以，根据我的选择，我删掉其他的语言配置文件。 <br />
<br />
3、editor\skins界面目录：默认带有三个界面（default：默认界面，加载速度相对较快；office2003：相对pp的界面，不过速度确实要慢些；silver：银白色界面，加载速度也相对较快），可以自行决定是否删除其中一两个。 <br />
<br />
4、editor\filemanager\browser\default\connectors目录：存放编辑器所支持的Web动态语言，我们以php为例所以保留php目录，test.html文件可以帮助你查看某语言下的上传设置等（具体上传设置我将在后面的配置作较为详细讲解），可以自行决定是否删除。 <br />
<br />
5、editor\filemanager\upload目录：同理。 <br />
<br />
到此精简完成，你会发现整个编辑器确实&ldquo;瘦身&rdquo;不少，呵呵 <br />
<br />
基本配置：<br />
<br />
下面我开始对编辑器进行简单配置（并非每步都必须，可根据自己的需要参考修改）：<br />
<br />
1、默认语言<br />
打开fckconfig.js文件（注意此文件是utf-8编码哦），找到FCKConfig.AutoDetectLanguage = true ;（第56行）此句作用为自动检测语言，默认为true，即表示编辑器会根据系统语言自动检测加载相应的语言，我们将其改为false，不让其检测，然后将FCKConfig.DefaultLanguage = 'en';（编辑器默认语言，第57行）改为简体中文&quot;zh-cn&quot;。 <br />
<br />
2、字体列表 <br />
依然打开fckconfig.js，因为此编辑器为外国人编写，所以默认不提供中文字体，我们为其加入，找到FCKConfig.FontNames（第142行）加入&ldquo;宋体;楷体_GB2312;新宋体;黑体;隶书;幼圆;&rdquo;其他字体可根据自己需要自行加入。<br />
&nbsp; &nbsp;<br />
3、文件上传<br />
FCKeditor的文件管理程序在editor/filemanager/文件夹下，分为浏览（browser）和上传（upload）两种。&ldquo;浏览&rdquo;是指浏览服务器已存在文件并可以选择，也可以上传本地文件至服务器；上传是指快速上传，在窗口中点&ldquo;上传&rdquo;选项，选择本地文件后上传就行，但是不能查看服务器上已有上传文件，相对而言不太方便，只是操作更为快捷。也就是说FCKeditor中有一个文件浏览，有两个文件上传，而这些设置是分散在多个文件中，配置相对复杂，下面我大致讲一下：<br />
在FCKeditor中共有三个文件跟上传功能有关，一个是js文件，两个是php文件，前者关闭后界面中不出现相关窗口或按钮，后者关闭后相关功能不可用。<br />
js文件即是指的fckconfig.js文件，在以前旧版本的fckconfig.js中首先你必需开启如下几项：<br />
&nbsp; &nbsp;<br />
浏览上传功能：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp;<a class="smalltxt" onclick="copycode(findobj('code0'));" href="http://info.codepub.com/2008/08/info-21032.html###">[Copy to clipboard]</a> <hr color="#dde3ec" size="1" />
<div id="code0" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">FCKConfig.LinkBrowser = true ; //文件 <br />
FCKConfig.ImageBrowser = true ; //图片 <br />
FCKConfig.FlashBrowser = true ; //Flash</div>
</blockquote>
<p>　　<br />
<br />
&nbsp; &nbsp;&nbsp; &nbsp;快速上传功能：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp;<a class="smalltxt" onclick="copycode(findobj('code1'));" href="http://info.codepub.com/2008/08/info-21032.html###">[Copy to clipboard]</a> <hr color="#dde3ec" size="1" />
<div id="code1" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">FCKConfig.LinkUpload = true ; //同上 <br />
FCKConfig.ImageUpload = true ; //同上 <br />
FCKConfig.FlashUpload = true ; //同上</div>
</blockquote>
<p>　　即把这几项设为true，而我们今天使用的2.4.2的fckconfig.js中默认已经是开启上传开关显示功能的，所以，如果你要将该编辑器作为前台使用（fckeditor上传漏洞问题一直没有得到较好的改善），考虑到安全性你可能需要关闭文件上传功能，那么你只需要将这几项设置为false即可（当然两个php文件你也不要开启上传功能哦）。<br />
<br />
如果你要使用文件上传功能，那么我们继续配置：<br />
依然在fckconfig.js文件中，fckeditor对语言默认支持的是asp，找到以下两句，进行相应修改： <br />
<br />
var _FileBrowserLanguage&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= 'asp' ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// asp | aspx | cfm | lasso | perl | php | py（第182行）<br />
var _QuickUploadLanguage&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= 'asp' ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// asp | aspx | cfm | lasso | php（第183行）<br />
我们将其均改为'php':<br />
<br />
var _FileBrowserLanguage&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= 'php' ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// asp | aspx | cfm | lasso | perl | php | py（第182行）<br />
var _QuickUploadLanguage&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= 'php' ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// asp | aspx | cfm | lasso | php<br />
在2.4.2版本中，我们发现增加了对更多文件后缀名的支持，这个应该是为了解决上传漏洞所作的些许改动，不过作用不大，呵呵<br />
*.AllowedExtensions：（其中*号代表：FCKConfig.LinkUpload、FCKConfig.ImageUpload等）表示允许上传的文件后缀名，为空表示允许所有文件，你可根据自己需要设置上传文件后缀名，一定程度增加安全性，设置的格式可以参考它已有的后缀名设置。<br />
*.DeniedExtensions：同上，表示禁止上传的文件后缀名。<br />
&nbsp; &nbsp;<br />
注：你设置了允许上传的，当然禁止的也就不必要设置了，本人推荐设置允许的，毕竟禁止的后缀名列表不能罗列完全，可能还有很多我们不曾想到的后缀名。<br />
<br />
对js文件的配置到此已经完成，下面我们进行两个php文件在上传方面的设置： <br />
&nbsp; &nbsp;<br />
文件浏览上传修改： <br />
打开editor\filemanager\browser\default\connectors\php\config.php文件，找到：<br />
$Config['Enabled'] = false ;（第28行）将false改为true，即允许上传。<br />
$Config['UserFilesPath'] = '/userfiles/' ;（第32行）为定义上传目录，可根据自己情况进行修改，我将其改为upload目录。 <br />
&nbsp; &nbsp;<br />
注：注意FCKeditor是不支持虚拟目录的，你的所有路径都是针对网站根目录的绝对路径。 <br />
<br />
文件快速上传修改： <br />
打开文件editor\filemanager\upload\php\config.php文件，找到<br />
$Config['Enabled'] = false ;（第28行）将false改为true。 <br />
$Config['UserFilesPath'] = '/UserFiles/' ;（第35行）同&ldquo;文件浏览上传&rdquo;的上传目录。 <br />
$Config['UseFileType'] = false ; （第32行）改为true，不然上传文件不会放在上传目录中 <br />
在该文件中，还有一项：<br />
$Config['UserFilesAbsolutePath'] = '' ;（第41行）<br />
这项的作用是设定上传的绝对路径，比如，你想指定上传文件到D:/Web/upload/下，你可以指定它的值为你的绝对路径，注意，如果你指定了该值，那你也要对$Config['UserFilesPath'] = '/UserFiles/' ;作相同的设置。<br />
&nbsp; &nbsp;<br />
到此上传基本配置已经完成，整个编辑器最基本的配置也已经结束了，你可以通过下列代码对其进行调用测试了：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp; <hr color="#dde3ec" size="1" />
<div id="code2" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">&lt;?php<br />
include(&quot;/fckeditor/fckeditor.php&quot;);&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 包含fckeditor类，fckeditor目录放在网站根目录下 <br />
$BasePath = &quot;/fckeditor/&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 编辑器路径 <br />
$oFCKeditor = new FCKeditor('jayliao');&nbsp; &nbsp; // 创建一个fckeditor对象，表单的名称为jayliao<br />
$oFCKeditor-&gt;BasePath&nbsp;&nbsp;= $BasePath;<br />
$oFCKeditor-&gt;Value&nbsp;&nbsp;= 'test';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 设置表单初始值 <br />
<br />
// 还可设置以下部分（&ldquo;=&rdquo;包含部分），并非必须：<br />
//==================================================================================//<br />
$oFCKeditor-&gt;Width = '100%';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 编辑器宽度，类中有默认值，如果不想修改可不管此项<br />
$oFCKeditor-&gt;Height= '300';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 同width，此处为高$oFCKeditor-&gt;ToolbarSet <br />
$oFCKeditor-&gt;ToolbarSet = 'JayLiao';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 默认编辑器工具栏有Basic（基本工具）和Default（所有工具）两种选择，JayLiao为本人自定义的工具条，如有需要可参考后文中的说明新建或修改工具条 <br />
$oFCKeditor-&gt;Config['SkinPath'] = '/fckeditor/editor/skins/office2003/';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 设置编辑器皮肤<br />
//==================================================================================//<br />
<br />
$oFCKeditor-&gt;Create();&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 调用类中方法，必须<br />
?&gt;</div>
</blockquote>
<p>　　<br />
&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;赶紧测试一下吧，是不是很激动，终于可以看到这个强大的编辑器了，呵呵。不过，马上你会发现在上传以中文命名的文件时会出现乱码，这到底是怎么回事呢？呵呵，不怕，下面我们就对其进行简单修改问题很快就解决的：<br />
我们为上传文件以时间+随机数作为其新名字，打开：editor\filemanager\upload\php\upload.php，找到：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp; <hr color="#dde3ec" size="1" />
<div id="code3" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">&lt;?php<br />
$sFileName = $oFile['name'] ;<br />
?&gt;<br />
替换为：<br />
<br />
<br />
<br />
&lt;?php<br />
$sFileName = $oFile['name'] ;<br />
$sOriginalFileName = $sFileName ;<br />
$sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ;<br />
$sExtension = strtolower( $sExtension ) ;<br />
$sFileName = date(&quot;YmdHis&quot;).rand(100, 200).&quot;.&quot;.$sExtension;<br />
?&gt;</div>
</blockquote>
<p>　　<br />
<br />
哈哈，你会发现&ldquo;快速上传&rdquo;的乱码已经解决，就这么简单，高兴之余不要忘了，同样，还需要修改&ldquo;浏览&rdquo;的上传，修改文件：editor\filemanager\browser\default\connectors\php\commands.php，修改内容同上。<br />
<br />
另：你上传的中文文件不做以上命名修改可能在服务器上并非乱码，如果你只是为了在浏览的时候让编辑器正确显示该类文件名，那你可以作如下修改，打开：editor\filemanager\browser\default\connectors\php\util.php，修改ConvertToXmlAttribute函数，将：<br />
<br />
return utf8_encode( htmlspecialchars( $value ) ) ;<br />
修改为：<br />
<br />
return iconv( &quot;GBK&quot;, &quot;UTF-8&quot;, htmlspecialchars($value) ) ; <br />
//需要php的 iconv模块支持<br />
这样，你的编辑器应该已经能正确显示中文名，不过强烈建议你修改上传文件的命名，中文名可能存在诸多不便。<br />
<br />
当完成以上设置后，fckeditor已经能满足我们的日常使用需要，不过我们却又发现一个问题，那就是上传后的文件我们却无法删除，这样会使网站上的垃圾文件（主要是图片）日益增多，那我们是否能够通过对编辑器的修改能较为方便的管理删除无用上传文件呢？我们不难想到fckeditor的浏览文件功能，对该功能进行适当的扩展，对日常所上传的文件进行管理就变得相当简单易行了，那我们赶紧动手吧：<br />
增加该功能我们修改的页面为：fckeditor\editor\filemanager\browser\default\frmresourceslist.html<br />
&nbsp; &nbsp;<br />
第一步，在页面的body区域增加如下代码：<br />
<br />
&lt;div id=&quot;showFile&quot; style=&quot;float:left; display:none; background-color:#999999&quot;&gt;&lt;/div&gt;<br />
&lt;iframe id=&quot;iframe_del&quot; name=&quot;iframe_del&quot; width=&quot;0&quot; height=&quot;0&quot; scrolling=&quot;no&quot;&gt;&lt;/iframe&gt;<br />
&lt;div id=&quot;body_content&quot;&gt;&lt;/div&gt;<br />
说明：第一对&lt;div&gt;&lt;/div&gt;的作用是当我们把鼠标移动到所上传的文件上时显示其相关信息；&lt;iframe&gt;&lt;/iframe&gt;标签的作用是供我们删除上传文件时做动作响应窗口的，即是将我们的删除动作在iframe中运行，目的是实现伪无刷新删除效果；最后一对&lt;div&gt;&lt;/div&gt;的作用是显示上传文件及文件夹的列表（2.4较以前版本对&lt;body&gt;&lt;/body&gt;标签中内容作了调整，老版该页面以&lt;table&gt;&lt;/table&gt;作为存放列表的容器，而新版直接将显示容器在js中生成，为了使文件显示div和iframe两组标签正常使用，故在body标签中加入一对&lt;div&gt;&lt;/div&gt;标签，使之能正常使用，在我的尝试中，倘若不这样修改似乎有错，当然不排除我方法不当的原因，呵呵）<br />
<br />
第二步，在文件的js代码区中加入：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp; <hr color="#dde3ec" size="1" />
<div id="code4" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">// add by jayliaoscu @ 2007-04-23&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;/*{{{{*/<br />
// 显示文件显示层<br />
function showDiv( fileUrl )<br />
{<br />
var name&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= fileUrl;<br />
//获取文件类型<br />
var suffix&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= name.substring(name.lastIndexOf(&quot;.&quot;)+1);<br />
<br />
var div= document.getElementById(&quot;showFile&quot;);<br />
div.content&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; = &quot;&quot;;<br />
div.style.position&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= &quot;absolute&quot;;<br />
div.content&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; += &quot;&lt;table width='256' border='0' cellpadding='3' cellspacing='1' bgcolor='#737357'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td height='23' align='left' bgcolor='#C7C78F'&gt;&lt;table width='100%' height='100%' border='0' cellpadding='0' cellspacing='0'&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td width='47%'&gt;&amp;nbsp;&lt;a href='javascript:' onClick='hiddenDiv();'&gt;&lt;font color='#000000' style='text-decoration:none;'&gt;关闭&lt;/font&gt;&lt;/a&gt;&lt;/td&gt;&lt;td width='53%' align='right'&gt;&lt;a href='javascript:' onclick='delFile(\&quot;&quot; + fileUrl + &quot;\&quot;);'&gt;&lt;font color='#000000' style='text-decoration:none;'&gt;删除&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;<br />
if (suffix=='gif' || suffix==&quot;jpg&quot; || suffix==&quot;jpeg&quot; || suffix==&quot;bmp&quot; || suffix==&quot;png&quot;)<br />
{<br />
div.content&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;+= &quot;&lt;tr&gt;&lt;td align='center' bgcolor='#C7C78F'&gt;&lt;img src='&quot; + fileUrl + &quot;' onload='if(this.width&gt;250) this.width=250' style='margin:3px;'&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;<br />
}<br />
else<br />
{<br />
div.content&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;+= &quot;&lt;tr&gt;&lt;td height='35' align='center' bgcolor='#C7C78F'&gt;&lt;strong&gt;该类型不能预览&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;&quot;;<br />
}<br />
div.content&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;+= &quot;&lt;/tbody&gt;&lt;/table&gt;&quot;;<br />
div.innerHTML&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= div.content;<br />
div.style.display&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= &quot;&quot;;<br />
div.style.top&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; = event.y+document.body.scrollTop+10;<br />
div.style.left&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; = event.x+document.body.scrollLeft+30;<br />
}<br />
// 隐藏文件显示层<br />
function hiddenDiv()<br />
{<br />
var div= document.getElementById(&quot;showFile&quot;);<br />
div.style.display =&quot;none&quot;;<br />
}<br />
// 在iframe中删除文件<br />
function delFile( fileUrl )<br />
{<br />
if(!confirm('你确定删除该文件？'))<br />
return;<br />
var url&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= '/fckeditor/del_file.php?filePath='+ fileUrl;<br />
window.open(url, &quot;iframe_del&quot;);<br />
Refresh();<br />
}<br />
///*}}}*/</div>
</blockquote>
<p>　　第三步，修改本页面原有js<br />
修改：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp; <hr color="#dde3ec" size="1" />
<div id="code5" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">oListManager.Clear = function()<br />
{<br />
document.body.innerHTML = '' ;<br />
}</div>
</blockquote>
<p>　　为：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp; <hr color="#dde3ec" size="1" />
<div id="code6" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">　　oListManager.Clear = function()<br />
{<br />
hiddenDiv();<br />
document.getElementById(&quot;body_content&quot;).innerHTML = '' ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// body_content为我们在body区域增加的div标签<br />
}</div>
</blockquote>
<p>　　找到：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp; <hr color="#dde3ec" size="1" />
<div id="code7" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">var sLink = '&lt;a href=&quot;#&quot; onclick=&quot;OpenFile(\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;&quot;&gt;' ;</div>
</blockquote>
<p>　　<br />
<br />
修改为：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp; <hr color="#dde3ec" size="1" />
<div id="code8" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">var sLink = '&lt;a href=&quot;#&quot; onmouseover=&quot;showDiv(\'' + fileUrl + '\');&quot; onclick=&quot;OpenFile(\'' + fileUrl.replace( /'/g, '\\\'') + '\');return false;&quot;&gt;' ;&nbsp;&nbsp;</div>
</blockquote>
<p>// 即是文件信息显示功能<br />
<br />
修改：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp; <hr color="#dde3ec" size="1" />
<div id="code9" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">　　function Refresh()<br />
{<br />
LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;<br />
}</div>
</blockquote>
<p>　　<br />
<br />
为：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp; <hr color="#dde3ec" size="1" />
<div id="code10" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">　　function Refresh()<br />
{<br />
hiddenDiv();&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 所作修改，为了刷新列表时默认隐藏文件显示层<br />
LoadResources( oConnector.ResourceType, oConnector.CurrentFolder ) ;<br />
}</div>
</blockquote>
<p>　　<br />
<br />
修改函数：GetFoldersAndFilesCallBack，找到：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp; <hr color="#dde3ec" size="1" />
<div id="code11" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">document.body.innerHTML = oHtml.ToString() ;</div>
</blockquote>
<p>　　修改为：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp; <hr color="#dde3ec" size="1" />
<div id="code12" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">document.getElementById(&quot;body_content&quot;).innerHTML = oHtml.ToString() ;</div>
</blockquote>
<p>　　<br />
<br />
最后，增加一个文件删除页面del_file.php（该文件路径和增加的js函数delFile(fileUrl)中的调用一致），作用为删除文件，给出成功与否的操作提示，参考代码：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp; <hr color="#dde3ec" size="1" />
<div id="code13" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">&lt;?php<br />
$filePath&nbsp; &nbsp; = &quot;..&quot;.trim($_GET['filePath']);<br />
<br />
if ( $filePath )<br />
{<br />
@unlink($filePath);<br />
echo &quot;&lt;script&gt;alert('删除成功。');&lt;/script&gt;&quot;;<br />
}<br />
else<br />
{<br />
echo &quot;&lt;script&gt;alert('删除错误，可能文件不存在或者已经删除。');&lt;/script&gt;&quot;;<br />
}<br />
?&gt;</div>
</blockquote>
<p>　　<br />
<br />
至此，我对于fckeditor的修改基本完成，当然这些修改只是对fckeditor修改使用的抛砖引玉，给大家一个参考，希望对初学者有所帮助。后面对编辑器的修改过程比较匆忙，并未修改一步完成一步文档书写，所以，难免有所出错，望见谅，如果你有什么问题和错误发现欢迎联系我互相讨论，共同进步，呵呵。<br />
<br />
By jayliaoscu @ 2007-5-5<br />
QQ: 41806572<br />
Email: jayliaoscu@gmail.com<br />
<br />
另附：<br />
&nbsp; &nbsp;配置文件（fckconfig.js）中主要配置项目如下，根据自己看情况配置：</p>
<blockquote class="code"><strong class="smalltxt">CODE:</strong>&nbsp;&nbsp; <hr color="#dde3ec" size="1" />
<div id="code14" style="padding-right: 5px; padding-left: 5px; padding-bottom: 5px; padding-top: 5px; font-family: Courier New">FCKConfig.CustomConfigurationsPath = '' ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 自定义配置文件路径和名称<br />
&nbsp; &nbsp;FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 编辑区的样式表文件<br />
&nbsp; &nbsp;FCKConfig.BaseHref = '';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 相对链接的基地址<br />
&nbsp; &nbsp;FCKConfig.Debug = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 是否开启调试功能，当调用FCKDebug.Output()时，会在调试窗中输出内容<br />
&nbsp; &nbsp;FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 设置皮肤<br />
&nbsp; &nbsp;FCKConfig.AutoDetectLanguage = true/false ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 是否自动检测语言<br />
&nbsp; &nbsp;FCKConfig.DefaultLanguage = 'zh-cn' ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 设置默认语言<br />
&nbsp; &nbsp;FCKConfig.ContentLangDirection = 'ltr/rtr';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 默认文字方向，ltr左，rtr右<br />
&nbsp; &nbsp;FCKConfig.FillEmptyBlocks = true/false ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 使用这个功能，可以将空的块级元素用空格来替代<br />
&nbsp; &nbsp;FCKConfig.FormatSource = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 切换到代码视图时，是否自动格式化代码<br />
&nbsp; &nbsp;FCKConfig.FormatOutput = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 当输出内容时是否自动格式化代码<br />
&nbsp; &nbsp;FCKConfig.FormatIndentator = &quot;&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 当在&ldquo;源码格式&rdquo;下缩进代码使用的字符<br />
&nbsp; &nbsp;FCKConfig.GeckoUseSPAN = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 是否允许SPAN标记代替B，I，U标记<br />
&nbsp; &nbsp;FCKConfig.StartupFocus = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 开启时是否FOCUS到编辑器<br />
&nbsp; &nbsp;FCKConfig.ForcePasteAsPlainText = true/false;// 强制粘贴为纯文本<br />
&nbsp; &nbsp;FCKConfig.ForceSimpleAmpersand = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 是否不把&amp;符号转换为XML实体<br />
&nbsp; &nbsp;FCKConfig.TabSpaces = 0/1;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// TAB是否有效<br />
&nbsp; &nbsp;FCKConfig.TabSpaces = 4;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// TAB键产生的空格字符数<br />
&nbsp; &nbsp;FCKConfig.ShowBorders = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 是否合并边框<br />
&nbsp; &nbsp;FCKConfig.ToolbarStartExpanded = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 页面载入时，工具栏是否展开，点&ldquo;展开工具栏&rdquo;时才出现<br />
&nbsp; &nbsp;FCKConfig.ToolBarCanCollapse = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 是否允许展开折叠工具栏<br />
&nbsp; &nbsp;FCKConfig.ToolbarSets = object ;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 编辑器的工具栏，可以自行定义，删减，可参考已存在工具栏<br />
&nbsp; &nbsp;FCKConfig.EnterMode = 'p';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 编辑器中直接回车，在代码中生成，可选为p | div | br<br />
&nbsp; &nbsp;FCKConfig.ShiftEnterMode = 'br';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 编辑器中Shift+回车，在代码中生成，可选为p | div | br<br />
&nbsp; &nbsp;FCKConfig.ContextMenu = 字符串数组;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 右键菜单的内容<br />
&nbsp; &nbsp;FCKConfig.FontColors = &quot;&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 文字颜色列表<br />
&nbsp; &nbsp;FCKConfig.FontNames = &quot;&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 字体列表<br />
&nbsp; &nbsp;FCKConfig.FontSizes = &quot;&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 字号列表<br />
&nbsp; &nbsp;FCKConfig.FontFormats = &quot;&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 文字格式列表<br />
&nbsp; &nbsp;FCKConfig.StylesXmlPath = &quot;&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // CSS样式列表的XML文件的位置<br />
&nbsp; &nbsp;FCKConfig.TemplatesXmlPath&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= &quot;&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 模版的XML文件位置<br />
&nbsp; &nbsp;FCKConfig.SpellChecker = &quot;ieSpell/Spellerpages&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 拼写检查器<br />
&nbsp; &nbsp;FCKConfig.IeSpellDownloadUrl = &quot;&quot;;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 下载拼写检查器的网址<br />
&nbsp; &nbsp;FCKConfig.SmileyPath&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= FCKConfig.BasePath + 'images/smiley/msn/';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;// 表情文件存放路径<br />
&nbsp; &nbsp;FCKConfig.SmileyImages = '';&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 表情文件名称列表，具体参考默认设置<br />
&nbsp; &nbsp;FCKConfig.SmileyColumns = 8;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;// 表情窗口显示表情列数<br />
&nbsp; &nbsp;FCKConfig.SmileyWindowWidth = 320;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 表情窗口显示宽度，此窗口会因为表情文件的改变而作调整<br />
&nbsp; &nbsp;FCKConfig.SmileyWindowHeight&nbsp; &nbsp;&nbsp; &nbsp;&nbsp;&nbsp;= 240;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 表情窗口显示高度，此窗口会因为表情文件的改变而作调整<br />
&nbsp; &nbsp;FCKConfig.FullPage = true/false;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp;&nbsp; &nbsp; // 是否允许编辑整个HTML文件，还是仅允许编辑BODY间的内容</div>
</blockquote>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=293</link>
			<category domain="http://www.shanghuo.net/?cid=2">php学习</category>
			<pubDate>2008-08-06 09:13</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=291</guid>
			<title>iframe用法总结</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>&lt;iframe&gt;是框架的一种形式，也比较常用到。<br />
<br />
例子1。<br />
<br />
&lt;iframe width=420 height=330 frameborder=0 scrolling=auto src=URL&gt;&lt;/iframe&gt;<br />
<br />
不用多说了。<br />
<br />
width插入页的宽；height插入页的高；scrolling 是否显示页面滚动条（可选的参数为 auto、yes、no，如果省略这个参数，则默认为auto）；frameborder&nbsp;&nbsp;&nbsp;&nbsp;边框大小；<br />
<br />
注意：URL建议用绝对路径<br />
<br />
&lt;iframe width=0 height=0 frameborder=0 scrolling=auto src=http://www.<a href="http://www.zhangtao.org.cn/" target="_blank">zhangtao</a>.org.cn&gt;&lt;/iframe&gt;<br />
<br />
<br />
例子2。<br />
<br />
如果一个页面里面有框架。。随便点页面里的连接，要求在这个&lt;iframe&gt; 里打开。在iframe 中加入name=** （**自己设定）<br />
<br />
&lt;iframe name=**&nbsp;&nbsp;&nbsp;&nbsp;&gt;&lt;/iframe&gt;<br />
<br />
然后在修改默认打开模式，：网页HEAD中加上&lt;a href=URL target=**&gt;或部分连接的目标框架设为（**）<br />
<br />
例子3。<br />
<br />
要插入一个页面。要求只拿中间一部分。其他的都不要。，。。<br />
<br />
代码：<br />
<br />
&lt;iframe name=123&nbsp;&nbsp;&nbsp;&nbsp;align=middle marginwidth=0 marginheight=0 vspace=-170 hspace=0 src=&quot;www.<a href="http://www.zhangtao.org.cn/" target="_blank">zhangtao</a>.org.cn&quot;&nbsp;&nbsp;&nbsp;&nbsp;frameborder=no scrolling=no&nbsp;&nbsp;&nbsp;&nbsp;width=776&nbsp;&nbsp;&nbsp;&nbsp;height=2500&gt;&lt;/iframe&gt;<br />
<br />
控制插入页被框架覆盖的深度 marginwidth=0 marginheight=0；控制框架覆盖上部分的深度 vspace=-170 <br />
<br />
scrolling滚动条要否（auto、yes、no）&nbsp;&nbsp;&nbsp;&nbsp; frameborder框架的边框大小，width=776&nbsp;&nbsp;&nbsp;&nbsp;height=2500此框架的大小。<br />
<br />
一、页面内加入iframe<br />
<br />
&lt;iframe width=420 height=330 frameborder=0 scrolling=auto src=URL&gt;&lt;/iframe&gt;，<br />
scrolling表示是否显示页面滚动条，可选的参数为auto、yes、no，如果省略这个参数，则默认为auto。<br />
<br />
二、超链接指向这个嵌入的网页，只要给这个iframe命名就可以了。方法是&lt;iframe name=**&gt;，例如我命名为aa，写入这句HTML语言&lt;iframe width=420 height=330 name=aa frameborder=0 src=http://www.cctv.com&gt;&lt;/iframe&gt;，然后，网页上的超链接语句应该写为：&lt;a&nbsp;&nbsp;&nbsp;&nbsp;href=URL target=aa&gt;<br />
<br />
三、如果把frameborder设为1，效果就像文本框一样<br />
<br />
透明的IFRAME的用法<br />
<br />
必需IE5.5以上版本才支持<br />
<br />
在transparentBody.htm文件的&lt;body&gt;标签中，我已经加入了style=&quot;background-color=transparent&quot; (即出现&lt;body style='background:transparent'&gt;然后正常调用就可以了) 通过以下四种IFRAME的写法我想大概你对iframe背景透明效果的实现方法应该会有个清晰的了解：<br />
<br />
&lt;IFRAME ID=&quot;Frame1&quot; SRC=&quot;transparentBody.htm&quot; allowTransparency=&quot;true&quot;&gt;&lt;/IFRAME&gt; <br />
<br />
&lt;IFRAME ID=&quot;Frame2&quot; SRC=&quot;transparentBody.htm&quot; allowTransparency=&quot;true&quot; STYLE=&quot;background-color: green&quot;&gt; &lt;/IFRAME&gt;<br />
<br />
&lt;IFRAME ID=&quot;Frame3&quot; SRC=&quot;transparentBody.htm&quot;&gt;&lt;/IFRAME&gt;<br />
<br />
&lt;IFRAME ID=&quot;Frame4&quot; SRC=&quot;transparentBody.htm&quot; STYLE=&quot;background-color: green&quot;&gt; &lt;/IFRAME&gt;<br />
<br />
<br />
<br />
<br />
iframe网页背景变成透明的办法-可以把iframe中的网页的背景设置为透明 <br />
1、a.htm <br />
&lt;iframe src=&quot;b.htm&quot; allowtransparency=&quot;true&quot;&gt;&lt;/iframe&gt; <br />
<br />
2、b.htm <br />
&lt;BODY STYLE=&quot;background-color:transparent&quot;&gt;<br />
<br />
CSS样式表里面的阿尔法通道<br />
<br />
在&lt;/head&gt;之前一行插入 <br />
&lt;style type=\&quot;text/css\&quot;&gt; <br />
.tabbg{filter:alpha(opacity=透明度);} <br />
&lt;/style&gt; <br />
透明度数值1～100之间 <br />
<br />
然后有背景的表格&lt;table ....&gt;添加&lt;table ..... class=tabbg&gt;即可，注意这个做法是整个表格包括文字也有想同透明度，如果只是要背景图片透明则需要将表格和图片放到不同层里面互不干扰才行。</p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=291</link>
			<category domain="http://www.shanghuo.net/?cid=18">成长</category>
			<pubDate>2008-07-25 13:50</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=290</guid>
			<title>PHOTOSHOP快捷键大全</title>
			<author>jiashixiang</author>
			<description><![CDATA[<p>具箱(多种工具共用一个快捷键的可同时按【Shift】加此快捷键选取) <br />
矩形、椭圆选框工具 【M】 <br />
裁剪工具 【C】 <br />
移动工具 【V】 <br />
套索、多边形套索、磁性套索 【L】 <br />
魔棒工具 【W】 <br />
喷枪工具 【J】 <br />
画笔工具 【B】 <br />
像皮图章、图案图章 【S】 <br />
历史记录画笔工具 【Y】 <br />
像皮擦工具 【E】 <br />
铅笔、直线工具 【N】 <br />
模糊、锐化、涂抹工具 【R】 <br />
减淡、加深、海棉工具 【O】 <br />
钢笔、自由钢笔、磁性钢笔 【P】 <br />
添加锚点工具 【+】 <br />
删除锚点工具 【-】 <br />
直接选取工具 【A】 <br />
文字、文字蒙板、直排文字、直排文字蒙板 【T】 <br />
度量工具 【U】 <br />
直线渐变、径向渐变、对称渐变、角度渐变、菱形渐变 【G】 <br />
油漆桶工具 【K】 <br />
吸管、颜色取样器 【I】 <br />
抓手工具 【H】 <br />
缩放工具 【Z】 <br />
默认前景色和背景色 【D】 <br />
切换前景色和背景色 【X】 <br />
切换标准模式和快速蒙板模式 【Q】 <br />
标准屏幕模式、带有菜单栏的全屏模式、全屏模式 【F】 <br />
临时使用移动工具 【Ctrl】 <br />
临时使用吸色工具 【Alt】 <br />
临时使用抓手工具 【空格】 <br />
打开工具选项面板 【Enter】 <br />
快速输入工具选项(当前工具选项面板中至少有一个可调节数字) 【0】至【9】 <br />
循环选择画笔 【[】或【]】 <br />
选择第一个画笔 【Shift】+【[】 <br />
选择最后一个画笔 【Shift】+【]】 <br />
建立新渐变(在&rdquo;渐变编辑器&rdquo;中) 【Ctrl】+【N】 <br />
文件操作 <br />
新建图形文件 【Ctrl】+【N】 <br />
用默认设置创建新文件 【Ctrl】+【Alt】+【N】 <br />
打开已有的图像 【Ctrl】+【O】 <br />
打开为... 【Ctrl】+【Alt】+【O】 <br />
关闭当前图像 【Ctrl】+【W】 <br />
保存当前图像 【Ctrl】+【S】 <br />
另存为... 【Ctrl】+【Shift】+【S】 <br />
存储副本 【Ctrl】+【Alt】+【S】 <br />
页面设置 【Ctrl】+【Shift】+【P】 <br />
打印 【Ctrl】+【P】 <br />
打开&ldquo;预置&rdquo;对话框 【Ctrl】+【K】 <br />
显示最后一次显示的&ldquo;预置&rdquo;对话框 【Alt】+【Ctrl】+【K】 <br />
设置&ldquo;常规&rdquo;选项(在预置对话框中) 【Ctrl】+【1】 <br />
设置&ldquo;存储文件&rdquo;(在预置对话框中) 【Ctrl】+【2】 <br />
设置&ldquo;显示和光标&rdquo;(在预置对话框中) 【Ctrl】+【3】 <br />
设置&ldquo;透明区域与色域&rdquo;(在预置对话框中) 【Ctrl】+【4】 <br />
设置&ldquo;单位与标尺&rdquo;(在预置对话框中) 【Ctrl】+【5】 <br />
设置&ldquo;参考线与网格&rdquo;(在预置对话框中) 【Ctrl】+【6】 <br />
设置&ldquo;增效工具与暂存盘&rdquo;(在预置对话框中) 【Ctrl】+【7】 <br />
设置&ldquo;内存与图像高速缓存&rdquo;(在预置对话框中) 【Ctrl】+【8】 <br />
编辑操作 <br />
还原/重做前一步操作 【Ctrl】+【Z】 <br />
还原两步以上操作 【Ctrl】+【Alt】+【Z】 <br />
重做两步以上操作 【Ctrl】+【Shift】+【Z】 <br />
剪切选取的图像或路径 【Ctrl】+【X】或【F2】 <br />
拷贝选取的图像或路径 【Ctrl】+【C】 <br />
合并拷贝 【Ctrl】+【Shift】+【C】 <br />
将剪贴板的内容粘到当前图形中 【Ctrl】+【V】或【F4】 <br />
将剪贴板的内容粘到选框中 【Ctrl】+【Shift】+【V】 <br />
自由变换 【Ctrl】+【T】 <br />
应用自由变换(在自由变换模式下) 【Enter】 <br />
从中心或对称点开始变换 (在自由变换模式下) 【Alt】 <br />
限制(在自由变换模式下) 【Shift】 <br />
扭曲(在自由变换模式下) 【Ctrl】 <br />
取消变形(在自由变换模式下) 【Esc】 <br />
自由变换复制的象素数据 【Ctrl】+【Shift】+【T】 <br />
再次变换复制的象素数据并建立一个副本 【Ctrl】+【Shift】+【Alt】+【T】 <br />
删除选框中的图案或选取的路径 【DEL】 <br />
用背景色填充所选区域或整个图层 【Ctrl】+【BackSpace】或【Ctrl】+【Del】 <br />
用前景色填充所选区域或整个图层 【Alt】+【BackSpace】或【Alt】+【Del】 <br />
弹出&ldquo;填充&rdquo;对话框 【Shift】+【BackSpace】 <br />
从历史记录中填充 【Alt】+【Ctrl】+【Backspace】 <br />
图像调整 <br />
调整色阶 【Ctrl】+【L】 <br />
自动调整色阶 【Ctrl】+【Shift】+【L】 <br />
打开曲线调整对话框 【Ctrl】+【M】 <br />
在所选通道的曲线上添加新的点(&lsquo;曲线&rsquo;对话框中) 在图象中【Ctrl】加点按 <br />
在复合曲线以外的所有曲线上添加新的点(&lsquo;曲线&rsquo;对话框中) 【Ctrl】+【Shift】 <br />
加点按 <br />
移动所选点(&lsquo;曲线&rsquo;对话框中) 【&uarr;】/【&darr;】/【&larr;】/【&rarr;】 <br />
以10点为增幅移动所选点以10点为增幅(&lsquo;曲线&rsquo;对话框中) 【Shift】+【箭头】 <br />
选择多个控制点(&lsquo;曲线&rsquo;对话框中) 【Shift】加点按 <br />
前移控制点(&lsquo;曲线&rsquo;对话框中) 【Ctrl】+【Tab】 <br />
后移控制点(&lsquo;曲线&rsquo;对话框中) 【Ctrl】+【Shift】+【Tab】 <br />
添加新的点(&lsquo;曲线&rsquo;对话框中) 点按网格 <br />
删除点(&lsquo;曲线&rsquo;对话框中) 【Ctrl】加点按点 <br />
取消选择所选通道上的所有点(&lsquo;曲线&rsquo;对话框中) 【Ctrl】+【D】 <br />
使曲线网格更精细或更粗糙(&lsquo;曲线&rsquo;对话框中) 【Alt】加点按网格 <br />
选择彩色通道(&lsquo;曲线&rsquo;对话框中) 【Ctrl】+【~】 <br />
选择单色通道(&lsquo;曲线&rsquo;对话框中) 【Ctrl】+【数字】 <br />
打开&ldquo;色彩平衡&rdquo;对话框 【Ctrl】+【B】 <br />
打开&ldquo;色相/饱和度&rdquo;对话框 【Ctrl】+【U】 <br />
全图调整(在色相/饱和度&rdquo;对话框中) 【Ctrl】+【~】 <br />
只调整红色(在色相/饱和度&rdquo;对话框中) 【Ctrl】+【1】 <br />
只调整黄色(在色相/饱和度&rdquo;对话框中) 【Ctrl】+【2】 <br />
只调整绿色(在色相/饱和度&rdquo;对话框中) 【Ctrl】+【3】 <br />
只调整青色(在色相/饱和度&rdquo;对话框中) 【Ctrl】+【4】 <br />
只调整蓝色(在色相/饱和度&rdquo;对话框中) 【Ctrl】+【5】 <br />
只调整洋红(在色相/饱和度&rdquo;对话框中) 【Ctrl】+【6】 <br />
去色 【Ctrl】+【Shift】+【U】 <br />
反相 【Ctrl】+【I】 <br />
图层操作 <br />
从对话框新建一个图层 【Ctrl】+【Shift】+【N】 <br />
以默认选项建立一个新的图层 【Ctrl】+【Alt】+【Shift】+【N】 <br />
通过拷贝建立一个图层 【Ctrl】+【J】 <br />
通过剪切建立一个图层 【Ctrl】+【Shift】+【J】 <br />
与前一图层编组 【Ctrl】+【G】 <br />
取消编组 【Ctrl】+【Shift】+【G】 <br />
向下合并或合并联接图层 【Ctrl】+【E】 <br />
合并可见图层 【Ctrl】+【Shift】+【E】 <br />
盖印或盖印联接图层 【Ctrl】+【Alt】+【E】 <br />
盖印可见图层 【Ctrl】+【Alt】+【Shift】+【E】 <br />
将当前层下移一层 【Ctrl】+【[】 <br />
将当前层上移一层 【Ctrl】+【]】 <br />
将当前层移到最下面 【Ctrl】+【Shift】+【[】 <br />
将当前层移到最上面 【Ctrl】+【Shift】+【]】 <br />
激活下一个图层 【Alt】+【[】 <br />
激活上一个图层 【Alt】+【]】 <br />
激活底部图层 【Shift】+【Alt】+【[】 <br />
激活顶部图层 【Shift】+【Alt】+【]】 <br />
调整当前图层的透明度(当前工具为无数字参数的,如移动工具) 【0】至【9】 <br />
保留当前图层的透明区域(开关) 【/】 <br />
投影效果(在&rdquo;效果&rdquo;对话框中) 【Ctrl】+【1】 <br />
内阴影效果(在&rdquo;效果&rdquo;对话框中) 【Ctrl】+【2】 <br />
外发光效果(在&rdquo;效果&rdquo;对话框中) 【Ctrl】+【3】 <br />
内发光效果(在&rdquo;效果&rdquo;对话框中) 【Ctrl】+【4】 <br />
斜面和浮雕效果(在&rdquo;效果&rdquo;对话框中) 【Ctrl】+【5】 <br />
应用当前所选效果并使参数可调(在&rdquo;效果&rdquo;对话框中) 【A】 <br />
图层混合模式 <br />
循环选择混合模式 【Alt】+【-】或【+】 <br />
正常 【Ctrl】+【Alt】+【N】 <br />
阈值（位图模式） 【Ctrl】+【Alt】+【L】 <br />
溶解 【Ctrl】+【Alt】+【I】 <br />
背后 【Ctrl】+【Alt】+【Q】 <br />
清除 【Ctrl】+【Alt】+【R】 <br />
正片叠底 【Ctrl】+【Alt】+【M】 <br />
屏幕 【Ctrl】+【Alt】+【S】 <br />
叠加 【Ctrl】+【Alt】+【O】 <br />
柔光 【Ctrl】+【Alt】+【F】 <br />
强光 【Ctrl】+【Alt】+【H】 <br />
颜色减淡 【Ctrl】+【Alt】+【D】 <br />
颜色加深 【Ctrl】+【Alt】+【B】 <br />
变暗 【Ctrl】+【Alt】+【K】 <br />
变亮 【Ctrl】+【Alt】+【G】 <br />
差值 【Ctrl】+【Alt】+【E】 <br />
排除 【Ctrl】+【Alt】+【X】 <br />
色相 【Ctrl】+【Alt】+【U】 <br />
饱和度 【Ctrl】+【Alt】+【T】 <br />
颜色 【Ctrl】+【Alt】+【C】 <br />
光度 【Ctrl】+【Alt】+【Y】 <br />
去色 海棉工具+【Ctrl】+【Alt】+【J】 <br />
加色 海棉工具+【Ctrl】+【Alt】+【A】 <br />
暗调 减淡/加深工具+【Ctrl】+【Alt】+【W】 <br />
中间调 减淡/加深工具+【Ctrl】+【Alt】+【V】 <br />
高光 减淡/加深工具+【Ctrl】+【Alt】+【Z】 <br />
选择功能 <br />
全部选取 【Ctrl】+【A】 <br />
取消选择 【Ctrl】+【D】 <br />
重新选择 【Ctrl】+【Shift】+【D】 <br />
羽化选择 【Ctrl】+【Alt】+【D】 <br />
反向选择 【Ctrl】+【Shift】+【I】 <br />
路径变选区 数字键盘的【Enter】 <br />
载入选区 【Ctrl】+点按图层、路径、通道面板中的缩约图 <br />
滤镜 <br />
按上次的参数再做一次上次的滤镜 【Ctrl】+【F】 <br />
退去上次所做滤镜的效果 【Ctrl】+【Shift】+【F】 <br />
重复上次所做的滤镜(可调参数) 【Ctrl】+【Alt】+【F】 <br />
选择工具(在&ldquo;3D变化&rdquo;滤镜中) 【V】 <br />
立方体工具(在&ldquo;3D变化&rdquo;滤镜中) 【M】 <br />
球体工具(在&ldquo;3D变化&rdquo;滤镜中) 【N】 <br />
柱体工具(在&ldquo;3D变化&rdquo;滤镜中) 【C】 <br />
轨迹球(在&ldquo;3D变化&rdquo;滤镜中) 【R】 <br />
全景相机工具(在&ldquo;3D变化&rdquo;滤镜中) 【E】 <br />
视图操作 <br />
显示彩色通道 【Ctrl】+【~】 <br />
显示单色通道 【Ctrl】+【数字】 <br />
显示复合通道 【~】 <br />
以CMYK方式预览(开关) 【Ctrl】+【Y】 <br />
打开/关闭色域警告 【Ctrl】+【Shift】+【Y】 <br />
放大视图 【Ctrl】+【+】 <br />
缩小视图 【Ctrl】+【-】 <br />
满画布显示 【Ctrl】+【0】 <br />
实际象素显示 【Ctrl】+【Alt】+【0】 <br />
向上卷动一屏 【PageUp】 <br />
向下卷动一屏 【PageDown】 <br />
向左卷动一屏 【Ctrl】+【PageUp】 <br />
向右卷动一屏 【Ctrl】+【PageDown】 <br />
向上卷动10 个单位 【Shift】+【PageUp】 <br />
向下卷动10 个单位 【Shift】+【PageDown】 <br />
向左卷动10 个单位 【Shift】+【Ctrl】+【PageUp】 <br />
向右卷动10 个单位 【Shift】+【Ctrl】+【PageDown】 <br />
将视图移到左上角 【Home】 <br />
将视图移到右下角 【End】 <br />
显示/隐藏选择区域 【Ctrl】+【H】 <br />
显示/隐藏路径 【Ctrl】+【Shift】+【H】 <br />
显示/隐藏标尺 【Ctrl】+【R】 <br />
显示/隐藏参考线 【Ctrl】+【;】 <br />
显示/隐藏网格 【Ctrl】+【&rdquo;】 <br />
贴紧参考线 【Ctrl】+【Shift】+【;】 <br />
锁定参考线 【Ctrl】+【Alt】+【;】 <br />
贴紧网格 【Ctrl】+【Shift】+【&rdquo;】 <br />
显示/隐藏&ldquo;画笔&rdquo;面板 【F5】 <br />
显示/隐藏&ldquo;颜色&rdquo;面板 【F6】 <br />
显示/隐藏&ldquo;图层&rdquo;面板 【F7】 <br />
显示/隐藏&ldquo;信息&rdquo;面板 【F8】 <br />
显示/隐藏&ldquo;动作&rdquo;面板 【F9】 <br />
显示/隐藏所有命令面板 【TAB】 <br />
显示或隐藏工具箱以外的所有调板 【Shift】+【TAB】 <br />
文字处理(在&rdquo;文字工具&rdquo;对话框中) <br />
左对齐或顶对齐 【Ctrl】+【Shift】+【L】 <br />
中对齐 【Ctrl】+【Shift】+【C】 <br />
右对齐或底对齐 【Ctrl】+【Shift】+【R】 <br />
左／右选择 1 个字符 【Shift】+【&larr;】/【&rarr;】 <br />
下／上选择 1 行 【Shift】+【&uarr;】/【&darr;】 <br />
选择所有字符 【Ctrl】+【A】 <br />
选择从插入点到鼠标点按点的字符 【Shift】加点按 <br />
左／右移动 1 个字符 【&larr;】/【&rarr;】 <br />
下／上移动 1 行 【&uarr;】/【&darr;】 <br />
左／右移动1个字 【Ctrl】+【&larr;】/【&rarr;】 <br />
将所选文本的文字大小减小2 点象素 【Ctrl】+【Shift】+【&lt;】 <br />
将所选文本的文字大小增大2 点象素 【Ctrl】+【Shift】+【&gt;】 <br />
将所选文本的文字大小减小10 点象素 【Ctrl】+【Alt】+【Shift】+【&lt;】 <br />
将所选文本的文字大小增大10 点象素 【Ctrl】+【Alt】+【Shift】+【&gt;】 <br />
将行距减小2点象素 【Alt】+【&darr;】 <br />
将行距增大2点象素 【Alt】+【&uarr;】 <br />
将基线位移减小2点象素 【Shift】+【Alt】+【&darr;】 <br />
将基线位移增加2点象素 【Shift】+【Alt】+【&uarr;】 <br />
将字距微调或字距调整减小20/1000ems 【Alt】+【&larr;】 <br />
将字距微调或字距调整增加20/1000ems 【Alt】+【&rarr;】 <br />
将字距微调或字距调整减小100/1000ems 【Ctrl】+【Alt】+【&larr;】 <br />
将字距微调或字距调整增加100/1000ems 【Ctrl】+【Alt】+【&rarr;】 <br />
<br />
&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash;&mdash; <br />
以下号称&ldquo;未公开的PHOTOSHOP快捷键&rdquo;<br />
<br />
◆ 双击面板=Open file <br />
ctrl+双击面板=New file <br />
shift+双击面板=Save <br />
alt+双击面板=Open as <br />
ctrl+shift+=Save as <br />
ctrl+alt+o=实际像素显示 <br />
ctrl+h=隐藏选定区域 <br />
ctrl+d=取消选定区域 <br />
ctrl+w=关闭文件 <br />
ctrl+q=退出photoshop <br />
▲ f=标准显示模式&rarr;带菜单的全屏显示模式&rarr;全屏显示模式 <br />
★ 按Tab键可以显示或隐藏工具箱和调色板，按&ldquo;Shift+Tab&quot;键可以显示或隐藏除工具箱外的其它调色板。 <br />
★ esc=取消操作 <br />
★ 可以通过按键盘上的某一字母键来快速选择某一工具，各个工具的字母快捷键如下：Mar-quee-M, Lasso-l, Airbrush-a, Eraser-E, Rubber Stamp-S, Focus-R, Path-P, Line-N, Paint Bucket-K, Hand-H, Move-V, Magic Wand-W, Paintbrush-B, Pencil-Y, Smudge-U, Toning-O, Type-T, Gradient-G, Eyedropper-I, Zoom-Z, Default Colors-D, Switch Colors-X, Standard Mode-Q, Quick Mask Mode-Q, <br />
<br />
秘技2:Shift,Ctr,Alt联袂主演! <br />
使用其它工具时，按住Ctrl键可切换到Move工具的功能（除了选择Hand工具时）；按住空格键可切换到Hand工具的功能。 <br />
<br />
使用其它工具时，按&ldquo;Ctrl+空格键&rdquo;可切换到Zoom In工具放大图像显示比例：按&ldquo;Alt+Ctrl+空格键&rdquo;可切换到Zoom Out工具缩小图像显示比例。 <br />
<br />
按&ldquo;Ctrl+[+]&quot;键可使图像文件持续放大显示比例，但窗口不随之放大；按&ldquo;Ctrl+[-]&rdquo;键可使图像文件持续缩小显示比例，但窗口不随之缩小。 <br />
<br />
按&ldquo;Ctrl+Alt+[+]&rdquo;键可使图像文件持续放大显示比例，且窗口随之放大；按&ldquo;Ctrl+Alt+[-]&rdquo;键可使图像文件持续缩小显示比例，且窗口随之缩小。 <br />
<br />
在Hand工具上双击鼠标可以使图像匹配窗口的大小显示。 <br />
<br />
按&ldquo;Ctrl+Alt+[数字键0]&rdquo;或在Zoom工具上双击鼠标可使图像文件以1：1比例显示。 <br />
<br />
按&ldquo;Shift+Backspace&rdquo;键可直接调用Fill（填充）对话框。 <br />
<br />
按&ldquo;Alt+Backspace(delete)&rdquo;键可将前景色填入选取框，按&ldquo;Ctrl+Backspace(delete)&rdquo;键可将背景色填入选取框内 <br />
<br />
在Layers、Channels、Paths调色板上，按Alt单击这些调色板底部的工具图标时，对于有对话框的工具可调出相应的对话框来更改设置。 <br />
<br />
移动图层和选取框时，按住Shift键可做水平、垂直或45度角的移动，按键盘上的方向键可做每次lpixel的移动，按住Shift 键再按键盘上的方向键可做每次10pixel的移动。 <br />
<br />
在使用选取工具时，按Shift键拖动鼠标可以在原选取框外增加选取范围（开集）；按Alt键拖动鼠标可以删除与原选取框重叠部分的选取范围；同时按Shift与Alt键拖动鼠标可以选取与原选取框重叠的范围（交集）。 <br />
<br />
调用Curves对话框时，按住Alt键于格线内单击鼠标可以增加网格线，提高曲线精度。 <br />
<br />
更改某一对话框的设置后，若要恢复为默认值，只要按住Alt键，Cancel键会变成Reset键，在Reset键上单击即可。 <br />
<br />
若要将某一图层上的图像拷贝到尺寸不同的图像窗口中央位置时，可以在拖动鼠标的同时按住Shift键，图像拖动到目的窗口后会自动居中。 <br />
<br />
若要将图像用于网络传输，可将图像模式设置为Indexed Color索引色彩色模式，有文件小、传输快的优点，如果再选择GIF89a Export(GIF输出），可以设置透明的效果，并将文件保存成GIF格式。 <br />
<br />
在使用自由变形（Layer/Free Transform）功能时，按Ctrl键并拖动某一控制点可以进行随意变形的调整；&ldquo;Shift+Ctrl&rdquo;键并拖动某一控制点可以进行倾斜调整；按Alt键并拖动某一控制点可以进行对称调整；按&ldquo;Shift+Ctrl+Alt&rdquo;键并拖动某一控制点可以进行透视效果的调整。 <br />
<br />
在layers调色板上，按住Ctrl用鼠标单击某一图层时，可载入该层图像成选取框(Background层除外，改名后可以）。 <br />
<br />
使用路径(Path)工具时的几个技巧：使用笔形(Pen)工具制作路径时按住Shift键可以强制路径或方向线成水平、垂直或45度角，按住Ctrl键可暂时切换到路径选取工具，按住Alt键将笔形光标在在黑色节点上单击可以改变方向线的方向，使曲线能够转折；按Alt键用路径选取(Direct Selection)工具单击路径会选取整个路径；要同时选取多个路径可以按住Shift后逐个单击；使用路径选工具时按住&ldquo;Ctrl+Alt&rdquo;键移近路径会切换到加节点与减节点笔形工具。 <br />
<br />
若要切换路径(path)是否显示，可以按住Shift键后在路径调色板的路径栏上单击鼠标, 或者在路径调色版灰色区域单击即可. <br />
<br />
若要一起执行数个宏(Action),可以先增加一个宏，然后录制每一个所要执行的宏。 <br />
<br />
若要在一个宏(Action)中的某一命令后新增一条命令，可以先选中该命令，然后单击调色板上的开始录制(Begin recording)图标，选择要增加的命令，再单击停止录制(Stop recording)图标即可。 <br />
<br />
在使用Filter/Render/Clouds滤镜时，若要产生更多明显的支纹图案，可先按住Alt键后再执行该命令；若要生成低漫射支彩效果，可先按住Shift键后再执行命令。 <br />
<br />
在使用Filter/Render/Lighting Effects滤镜时，若要在对话框内复制光源时，可先按住Alt键后再拖动光源即可实现复制。 <br />
<br />
若要在Color调色板上直接切换色彩模式，可先按住Shift键后，再将光标移到色彩条上单击即可</p>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=290</link>
			<category domain="http://www.shanghuo.net/?cid=18">成长</category>
			<pubDate>2008-07-25 13:49</pubDate>
		</item>
		<item>
			<guid>http://www.shanghuo.net/?action=show&amp;id=289</guid>
			<title>EditPlus正则表达式替换字符串详解</title>
			<author>jiashixiang</author>
			<description><![CDATA[<div class="t_msgfont" id="message846519">正则表达式是一个查询的字符串，它包含一般的字符和一些特殊的字符，特殊字符可以扩展查找字符串的能力，正则表达式在查找和替换字符串的作用不可忽视，它能很好提高工作效率。 <br />
<br />
EditPlus的查找，替换，文件中查找支持以下的正则表达式： <br />
<br />
表达式 说明 <br />
\t 制表符. <br />
\n 新行. <br />
. 匹配任意字符. <br />
| 匹配表达式左边和右边的字符. 例如, &quot;ab|bc&quot; 匹配 &quot;ab&quot; 或者 &quot;bc&quot;. <br />
[] 匹配列表之中的任何单个字符. 例如, &quot;[ab]&quot; 匹配 &quot;a&quot; 或者 &quot;b&quot;. &quot;[0-9]&quot; 匹配任意数字. <br />
[^] 匹配列表之外的任何单个字符. 例如, &quot;[^ab]&quot; 匹配 &quot;a&quot; 和 &quot;b&quot; 以外的字符. &quot;[^0-9]&quot; 匹配任意非数字字符. <br />
* 其左边的字符被匹配任意次(0次，或者多次). 例如 &quot;be*&quot; 匹配 &quot;b&quot;, &quot;be&quot; 或者 &quot;bee&quot;. <br />
+ 其左边的字符被匹配至少一次(1次，或者多次). 例如 &quot;be+&quot; 匹配 &quot;be&quot; 或者 &quot;bee&quot; 但是不匹配 &quot;b&quot;. <br />
? 其左边的字符被匹配0次或者1次. 例如 &quot;be?&quot; 匹配 &quot;b&quot; 或者 &quot;be&quot; 但是不匹配 &quot;bee&quot;. <br />
^ 其右边的表达式被匹配在一行的开始. 例如 &quot;^A&quot; 仅仅匹配以 &quot;A&quot; 开头的行. <br />
$Content$nbsp;其左边的表达式被匹配在一行的结尾. 例如 &quot;e$&quot; 仅仅匹配以 &quot;e&quot; 结尾的行. <br />
() 影响表达式匹配的顺序，并且用作表达式的分组标记. <br />
\ 转义字符. 如果你要使用 &quot;\&quot; 本身, 则应该使用 &quot;\\&quot;. <br />
<br />
例子： <br />
<br />
原始串 <br />
str[1]abc[991]; <br />
str[2]abc[992]; <br />
str[11]abc[993]; <br />
str[22]abc[994]; <br />
str[111]abc[995]; <br />
str[222]abc[996]; <br />
str[1111]abc[997]; <br />
str[2222]abc[999]; <br />
<br />
目标串： <br />
abc[1]; <br />
abc[2]; <br />
abc[11]; <br />
abc[22]; <br />
abc[111]; <br />
abc[222]; <br />
abc[1111]; <br />
abc[2222]; <br />
<br />
处理： <br />
查找串：str\[([0-9]+)\]abc\[[0-9]+\] <br />
替换串：abc[\1] <br />
<br />
【1】正则表达式应用&mdash;&mdash;替换指定内容到行尾 <br />
原始文本如下面两行 <br />
abc aaaaa <br />
123 abc 444 <br />
<br />
希望每次遇到&ldquo;abc&rdquo;，则替换&ldquo;abc&rdquo;以及其后到行尾的内容为&ldquo;abc efg&rdquo; <br />
即上面的文本最终替换为： <br />
abc efg <br />
123 abc efg <br />
<br />
解决： <br />
① 在替换对话框，查找内容里输入&ldquo;abc.*&rdquo; <br />
② 同时勾选&ldquo;正则表达式&rdquo;复选框，然后点击&ldquo;全部替换&rdquo;按钮 <br />
其中，符号的含义如下： <br />
&ldquo;.&rdquo; ＝匹配任意字符 <br />
&ldquo;*&rdquo; ＝匹配0次或更多 <br />
<br />
注意：其实就是正则表达式替换，这里只是把一些曾经提出的问题加以整理，单纯从正则表达式本身来说，就可以引申出成千上万种特例。 <br />
<br />
【2】正则表达式应用&mdash;&mdash;数字替换 <br />
希望把 <br />
asdadas123asdasdas456asdasdasd789asdasd <br />
替换为: <br />
asdadas[123]asdasdas[456]asdasdasd[789]asdasd <br />
<br />
在替换对话框里面，勾选&ldquo;正则表达式&rdquo;复选框； <br />
在查找内容里面输入&ldquo;[0-9][0-9][0-9]&rdquo;，不含引号 <br />
&ldquo;替换为:&rdquo;里面输入&ldquo;[\0\1\2]&rdquo;，不含引号 <br />
范围为你所操作的范围，然后选择替换即可。 <br />
<br />
实际上这也是正则表达式的使用特例，&ldquo;[0-9]&rdquo;表示匹配0～9之间的任何特例，同样&ldquo;[a-z]&rdquo;就表示匹配a～z之间的任何特例 <br />
上面重复使用了&ldquo;[0-9]&rdquo;，表示连续出现的三个数字 <br />
&ldquo;\0&rdquo;代表第一个&ldquo;[0-9]&rdquo;对应的原型，&ldquo;\1&rdquo;代表第二个&ldquo;[0-9]&rdquo;对应的原型，依此类推 <br />
&ldquo;[&rdquo;、&ldquo;]&rdquo;为单纯的字符，表示添加&ldquo;[&rdquo;或&ldquo;]&rdquo;，如果输入&ldquo;其它\0\1\2其它&rdquo;，则替换结果为： <br />
<br />
asdadas其它123其它asdasdas其它456其它asdasdasd其它789其它asdasd <br />
<br />
功能增强（by jiuk2k）： <br />
如果将查找内容&ldquo;[0-9][0-9][0-9]&rdquo;改为&ldquo;[0-9]*[0-9]&rdquo;，对应1 或 123 或 12345 或 &hellip; <br />
大家根据需要定制 <br />
<br />
相关内容还有很多，可以自己参考正则表达式的语法仔细研究一下 <br />
<br />
【3】正则表达式应用&mdash;&mdash;删除每一行行尾的指定字符 <br />
因为这几个字符在行中也是出现的,所以肯定不能用简单的替换实现 <br />
比如 <br />
12345 1265345 <br />
2345 <br />
需要删除每行末尾的&ldquo;345&rdquo; <br />
这个也算正则表达式的用法，其实仔细看正则表达式应该比较简单，不过既然有这个问题提出，说明对正则表达式还得有个认识过程，解决方法如下 <br />
解决： <br />
在替换对话框中，启用&ldquo;正则表达式&rdquo;复选框 <br />
在查找内容里面输入&ldquo;345$&rdquo; <br />
这里&ldquo;$&rdquo;表示从行尾匹配 <br />
<br />
如果从行首匹配，可以用&ldquo;^&rdquo;来实现，不过 EditPlus 有另一个功能可以很简单的删除行首的字符串 <br />
a. 选择要操作的行 <br />
b. 编辑－格式－删除行注释 <br />
c. 在弹出对话框里面输入要清除的行首字符，确定 <br />
<br />
【4】正则表达式应用&mdash;&mdash;替换带有半角括号的多行 <br />
几百个网页中都有下面一段代码： <br />
\n <br />
在替换对话框启用&ldquo;正则表达式&rdquo;选项，这时就可以完成替换了 <br />
<br />
【5】正则表达式应用&mdash;&mdash;删除空行 <br />
启动EditPlus，打开待处理的文本类型文件。 <br />
①、选择&ldquo;查找&rdquo;菜单的&ldquo;替换&rdquo;命令，弹出文本替换对话框。选中&ldquo;正则表达式&rdquo;复选框，表明我们要在查找、替换中使用正则表达式。然后，选中&ldquo;替换范围&rdquo;中的&ldquo;当前文件&rdquo;，表明对当前文件操作。 <br />
②、单击&ldquo;查找内容&rdquo;组合框右侧的按钮，出现下拉菜单。 <br />
③、下面的操作添加正则表达式，该表达式代表待查找的空行。（技巧提示：空行仅包括空格符、制表符、回车符，且必须以这三个符号之一作为一行的开头，并且以回车符结尾，查找空行的关键是构造代表空行的正则表达式）。 <br />
直接在&rdquo;查找&rdquo;中输入正则表达式&ldquo;^[ \t]*\n&rdquo;，注意\t前有空格符。 <br />
（1）选择&ldquo;从行首开始匹配&rdquo;，&ldquo;查找内容&rdquo;组合框中出现字符&ldquo;^&rdquo;，表示待查找字符串必须出现在文本中一行的行首。 <br />
（2）选择&ldquo;字符在范围中&rdquo;，那么在&ldquo;^&rdquo;后会增加一对括号&ldquo;[]&rdquo;，当前插入点在括号中。括号在正则表达式中表示，文本中的字符匹配括号中任意一个字符即符合查找条件。 <br />
（3）按一下空格键，添加空格符。空格符是空行的一个组成成分。 <br />
（4）选择&ldquo;制表符&rdquo;，添加代表制表符的&ldquo;\t&rdquo;。 <br />
（5）移动光标，将当前插入点移到&ldquo;]&rdquo;之后，然后选择&ldquo;匹配 0 次或更多&rdquo;，该操作会添加星号字符&ldquo;*&rdquo;。星号表示，其前面的括号&ldquo;[]&rdquo;内的空格符或制表符，在一行中出现0个或多个。 <br />
（6）选择&ldquo;换行符&rdquo;，插入&ldquo;\n&rdquo;，表示回车符。 <br />
④、&ldquo;替换为&rdquo;组合框保持空，表示删除查找到的内容。单击&ldquo;替换&rdquo;按钮逐个行删除空行，或单击&ldquo;全部替换&rdquo;按钮删除全部空行（注意：EditPlus有时存在&ldquo;全部替换&rdquo;不能一次性完全删除空行的问题，可能是程序BUG，需要多按几次按钮）。 <br />
<br />
1.在汉化的时候，是否经常碰到这样的语句需要翻译： <br />
<br />
Code: <br />
&ldquo;Error adding the post!&rdquo;; <br />
&ldquo;Error adding the comment!&rdquo;; <br />
&ldquo;Error adding the user!&rdquo;; <br />
<br />
如果有很多类似的文件一个一个翻译显然很累而且感觉很无聊。 <br />
<br />
其实可以这样处理，在Editplus里面用 替换 功能，在替换对话框选中&ldquo;正则表达式&rdquo;复选框： <br />
查找原文件： <br />
<br />
Code: <br />
&ldquo;Error adding ([^!|&quot;|;]*) <br />
<br />
替换成： <br />
<br />
Code: <br />
&ldquo;在增加\1时发生错误 <br />
<br />
这样替换之后发生了什么？结果是： <br />
<br />
Code: <br />
&ldquo;在增加the post时发生错误!&rdquo;; <br />
&ldquo;在增加the comment时发生错误!&rdquo;; <br />
&ldquo;在增加the user时发生错误!&rdquo;; <br />
<br />
ok，接下来你会怎么做？当然再替换一次把the post、the comment、the user替换成你要翻译的词。得到最后的结果： <br />
<br />
Code: <br />
&ldquo;在增加帖子时发生错误!&rdquo;; <br />
&ldquo;在增加评论时发生错误!&rdquo;; <br />
&ldquo;在增加用户时发生错误!&rdquo;; <br />
<br />
2.要提取的单词在中间，比如： <br />
<br />
Code: <br />
can not be deleted because <br />
can not be added because <br />
can not be updating because <br />
<br />
可以用这种方式： <br />
在Editplus里面用 替换 功能，在替换对话框选中&ldquo;正则表达式&rdquo;复选框： <br />
查找原文件： <br />
<br />
Code: <br />
can not be ([^ ]*) because <br />
<br />
替换成： <br />
<br />
Code: <br />
无法被\1因为 <br />
<br />
这样替换之后发生了什么？结果是： <br />
<br />
Code: <br />
无法被deleted因为 <br />
无法被added因为 <br />
无法被updating因为 <br />
<br />
其余步骤如上。 <br />
<br />
在汉化量很大而且句式比较单调的情况下对效率的提高很明显！ <br />
<br />
解释一下：([^!|&quot;|;]*) 的意思是 不等于 ! 和 &rdquo; 和 ; 中的任何一个，意思就是这3个字符之外的所有字符将被选中（替换区域）； <br />
\1 即被选中的替换区域所在的新位置（复制到这个新位置）。 <br />
<br />
3.经常手工清理一行一行地删除文本文件里面的空白行，其实可以交给Editplus更好的完成，在Editplus里面用替换功能，在替换对话框选中&ldquo;正则表达式&rdquo;复选框： <br />
查找原文件： <br />
<br />
Code: <br />
^[ \t]*\n <br />
<br />
替换部分为空就可以删除空白行了，执行一下看看：） <br />
<br />
abandon[2&rsquo;b9nd2n]v.抛弃，放弃 <br />
abandonment[2&rsquo;b9nd2nm2nt]n.放弃 <br />
abbreviation[2bri:vi&rsquo;ei62n]n.缩写 <br />
abeyance[2&rsquo;bei2ns]n.缓办，中止 <br />
abide[2&rsquo;baid]v.遵守 <br />
ability[2&rsquo;biliti]n.能力 <br />
able[&rsquo;eibl]adj.有能力的，能干的 <br />
abnormal[9b&rsquo;n0:m2l]adj.反常的，变态的 <br />
aboard[2&rsquo;b0:d]adv.船(车)上 <br />
<br />
1. <br />
查找: (^[a-zA-Z0-0\-]+)(\[*.*\]+)(.*) <br />
替换: @@@@@&rdquo;\1&Prime;,&rdquo;\2&Prime;,&rdquo;\3&Prime;, <br />
效果: <br />
@@@@@&rdquo;abandon&rdquo;,&rdquo;[2&rsquo;b9nd2n]&ldquo;,&rdquo;v.抛弃，放弃&rdquo;, <br />
@@@@@&rdquo;abandonment&rdquo;,&rdquo;[2&rsquo;b9nd2nm2nt]&ldquo;,&rdquo;n.放弃&rdquo;, <br />
@@@@@&rdquo;abbreviation&rdquo;,&rdquo;[2bri:vi&rsquo;ei62n]&ldquo;,&rdquo;n.缩写&rdquo;, <br />
@@@@@&rdquo;abeyance&rdquo;,&rdquo;[2&rsquo;bei2ns]&ldquo;,&rdquo;n.缓办，中止&rdquo;, <br />
@@@@@&rdquo;abide&rdquo;,&rdquo;[2&rsquo;baid]&ldquo;,&rdquo;v.遵守&rdquo;, <br />
@@@@@&rdquo;ability&rdquo;,&rdquo;[2&rsquo;biliti]&ldquo;,&rdquo;n.能力&rdquo;, <br />
@@@@@&rdquo;able&rdquo;,&rdquo;[&rsquo;eibl]&ldquo;,&rdquo;adj.有能力的，能干的&rdquo;, <br />
@@@@@&rdquo;abnormal&rdquo;,&rdquo;[9b&rsquo;n0:m2l]&ldquo;,&rdquo;adj.反常的，变态的&rdquo;, <br />
@@@@@&rdquo;aboard&rdquo;,&rdquo;[2&rsquo;b0:d]&ldquo;,&rdquo;adv.船(车)上&rdquo;, <br />
<br />
2. <br />
查找: \n <br />
替换: <br />
注: 要次替换内容为空 <br />
效果: <br />
@@@@@&rdquo;abandon&rdquo;,&rdquo;[2&rsquo;b9nd2n]&ldquo;,&rdquo;v.抛弃，放弃 &rdquo;,@@@@@&rdquo;abandonment&rdquo;,&rdquo;[2&rsquo;b9nd2nm2nt]&ldquo;,&rdquo;n.放弃 &rdquo;,@@@@@&rdquo;abbreviation&rdquo;,&rdquo;[2bri:vi&rsquo;ei62n]&ldquo;,&rdquo;n.缩写 &rdquo;,@@@@@&rdquo;abeyance&rdquo;,&rdquo;[2&rsquo;bei2ns]&ldquo;,&rdquo;n.缓办，中止&rdquo;,@@@@@&rdquo;abide&rdquo;,&rdquo;[2&rsquo;baid]&ldquo;,&rdquo;v.遵守 &rdquo;,@@@@@&rdquo;ability&rdquo;,&rdquo;[2&rsquo;biliti]&ldquo;,&rdquo;n.能力&rdquo;,@@@@@&rdquo;able&rdquo;,&rdquo;[&rsquo;eibl]&ldquo;,&rdquo;adj.有能力的，能干的 &rdquo;,@@@@@&rdquo;abnormal&rdquo;,&rdquo;[9b&rsquo;n0:m2l]&ldquo;,&rdquo;adj.反常的，变态的 &rdquo;,@@@@@&rdquo;aboard&rdquo;,&rdquo;[2&rsquo;b0:d]&ldquo;,&rdquo;adv.船(车)上&rdquo;,@@@@@&rdquo;abolish&rdquo;,&rdquo;[2&rsquo;b0li6]&ldquo;,&rdquo;v.废除，取消&rdquo;,@@@@@&rdquo;abolition&rdquo;,&rdquo;[9b2&rsquo;li62n]&ldquo;,&rdquo;n.废除，取消&rdquo; <br />
<br />
3. <br />
查找: @@@@@ <br />
替换: \n <br />
效果: <br />
&ldquo;abandon&rdquo;,&rdquo;[2&rsquo;b9nd2n]&ldquo;,&rdquo;v.抛弃，放弃&rdquo;, <br />
&ldquo;abandonment&rdquo;,&rdquo;[2&rsquo;b9nd2nm2nt]&ldquo;,&rdquo;n.放弃&rdquo;, <br />
&ldquo;abbreviation&rdquo;,&rdquo;[2bri:vi&rsquo;ei62n]&ldquo;,&rdquo;n.缩写&rdquo;, <br />
&ldquo;abeyance&rdquo;,&rdquo;[2&rsquo;bei2ns]&ldquo;,&rdquo;n.缓办，中止&rdquo;, <br />
&ldquo;abide&rdquo;,&rdquo;[2&rsquo;baid]&ldquo;,&rdquo;v.遵守&rdquo;, <br />
&ldquo;ability&rdquo;,&rdquo;[2&rsquo;biliti]&ldquo;,&rdquo;n.能力&rdquo;, <br />
&ldquo;able&rdquo;,&rdquo;[&rsquo;eibl]&ldquo;,&rdquo;adj.有能力的，能干的&rdquo;, <br />
&ldquo;abnormal&rdquo;,&rdquo;[9b&rsquo;n0:m2l]&ldquo;,&rdquo;adj.反常的，变态的&rdquo;, <br />
&ldquo;aboard&rdquo;,&rdquo;[2&rsquo;b0:d]&ldquo;,&rdquo;adv.船(车)上&rdquo;, <br />
&ldquo;abolish&rdquo;,&rdquo;[2&rsquo;b0li6]&ldquo;,&rdquo;v.废除，取消&rdquo;, <br />
<br />
4. 任务完成</div>]]></description>
			<link>http://www.shanghuo.net/?action=show&amp;id=289</link>
			<category domain="http://www.shanghuo.net/?cid=2">php学习</category>
			<pubDate>2008-07-11 09:34</pubDate>
		</item>
	</channel>
</rss>
