<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>hety</title>
	<atom:link href="http://www.hety.net/feed" rel="self" type="application/rss+xml" />
	<link>http://www.hety.net</link>
	<description>心素如简 人淡如菊 人品如茶 好好生活 努力工作</description>
	<lastBuildDate>Wed, 08 Feb 2012 03:36:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>MySQL Show命令的使用</title>
		<link>http://www.hety.net/archives/299</link>
		<comments>http://www.hety.net/archives/299#comments</comments>
		<pubDate>Wed, 08 Feb 2012 03:36:00 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[个人日记]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=299</guid>
		<description><![CDATA[MySQL中有很多的基本命令，show命令也是其中之一，在很多使用者中对show命令的使用还容易产生混淆，本文汇集了show命令的众多用法。 1. show tables或show tables from database_name; &#8212; 显示当前数据库中所有表的名称。 2. show databases; &#8212; 显示mysql中所有数据库的名称。 3. show columns from table_name from database_name; 或show columns from database_name.table_name; &#8212; 显示表中列名称。 4. show grants for user_name; &#8212; 显示一个用户的权限，显示结果类似于grant 命令。 5. show index from table_name; &#8212; 显示表的索引。 6. show status; &#8212; 显示一些系统特定资源的信息，例如，正在运行的线程数量。 7. show variables; &#8212; 显示系统变量的名称和值。 8. show processlist; [...]]]></description>
			<content:encoded><![CDATA[<p>MySQL中有很多的基本命令，show命令也是其中之一，在很多使用者中对show命令的使用还容易产生混淆，本文汇集了show命令的众多用法。<br />
1. show tables或show tables from database_name; &#8212; 显示当前数据库中所有表的名称。<br />
2. show databases; &#8212; 显示mysql中所有数据库的名称。<br />
3. show columns from table_name from database_name; 或show columns from database_name.table_name; &#8212; 显示表中列名称。<br />
4. show grants for user_name; &#8212; 显示一个用户的权限，显示结果类似于grant 命令。<br />
5. show index from table_name; &#8212; 显示表的索引。<br />
6. show status; &#8212; 显示一些系统特定资源的信息，例如，正在运行的线程数量。<br />
7. show variables; &#8212; 显示系统变量的名称和值。<br />
8. show processlist; &#8212; 显示系统中正在运行的所有进程，也就是当前正在执行的查询。大多数用户可以查看他们自己的进程，但是如果他们拥有process权限，就可以查看所有人的进程，包括密码。<br />
9. show table status; &#8212; 显示当前使用或者指定的database中的每个表的信息。信息包括表类型和表的最新更新时间。<br />
10. show privileges; &#8212; 显示服务器所支持的不同权限。<br />
11. show create database database_name; &#8212; 显示create database 语句是否能够创建指定的数据库。<br />
12. show create table table_name; &#8212; 显示create database 语句是否能够创建指定的数据库。<br />
13. show engines; &#8212; 显示安装以后可用的存储引擎和默认引擎。<br />
14. show innodb status; &#8212; 显示innoDB存储引擎的状态。<br />
15. show logs; &#8212; 显示BDB存储引擎的日志。<br />
16. show warnings; &#8212; 显示最后一个执行的语句所产生的错误、警告和通知。<br />
17. show errors; &#8212; 只显示最后一个执行语句所产生的错误。<br />
18. show [storage] engines; &#8211;显示安装后的可用存储引擎和默认引擎。</p>
<p><span id="more-299"></span><br />
示例：<br />
1 显示该数据库连接使用的字符集的情况<br />
show variables like &#8216;%char%&#8217;;<br />
2 查看MySQL服务器运行的各种状态值<br />
show global status;<br />
3 连接数<br />
01<br />
mysql&gt; show variables like &#8216;max_connections&#8217;;<br />
02<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;-+<br />
03<br />
| Variable_name | Value |<br />
04<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;-+<br />
05<br />
| max_connections | 500 |<br />
06<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;-+<br />
07<br />
08<br />
mysql&gt; show global status like &#8216;max_used_connections&#8217;;<br />
09<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
10<br />
| Variable_name | Value |<br />
11<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
12<br />
| Max_used_connections | 498 |<br />
13<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
设置的最大连接数是500，而响应的连接数是498<br />
max_used_connections / max_connections * 100% = 99.6% （理想值 ≈ 85%）<br />
4 key_buffer_size<br />
key_buffer_size是对MyISAM表性能影响最大的一个参数, 不过数据库中多为Innodb<br />
01<br />
mysql&gt; show variables like &#8216;key_buffer_size&#8217;;<br />
02<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;-+<br />
03<br />
| Variable_name | Value |<br />
04<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;-+<br />
05<br />
| key_buffer_size | 67108864 |<br />
06<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;-+<br />
07<br />
08<br />
mysql&gt; show global status like &#8216;key_read%&#8217;;<br />
09<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;-+<br />
10<br />
| Variable_name | Value |<br />
11<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;-+<br />
12<br />
| Key_read_requests | 25629497 |<br />
13<br />
| Key_reads | 66071 |<br />
14<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;-+<br />
一共有25629497个索引读取请求，有66071个请求在内存中没有找到直接从硬盘读取索引，计算索引未命中缓存的概率：<br />
key_cache_miss_rate ＝ Key_reads / Key_read_requests * 100% =0.27%<br />
需要适当加大key_buffer_size<br />
1<br />
mysql&gt; show global status like &#8216;key_blocks_u%&#8217;;<br />
2<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
3<br />
| Variable_name | Value |<br />
4<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
5<br />
| Key_blocks_unused | 10285 |<br />
6<br />
| Key_blocks_used | 47705 |<br />
7<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
Key_blocks_unused表示未使用的缓存簇(blocks)数，Key_blocks_used表示曾经用到的最大的blocks数<br />
Key_blocks_used / (Key_blocks_unused + Key_blocks_used) * 100% ≈ 18% （理想值 ≈ 80%）<br />
max_used_connections / max_connections * 100% = 99.6% （理想值 ≈ 85%）<br />
5 open table 的情况<br />
1<br />
mysql&gt; show global status like &#8216;open%tables%&#8217;;<br />
2<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
3<br />
| Variable_name | Value |<br />
4<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
5<br />
| Open_tables | 1024 |<br />
6<br />
| Opened_tables | 1465 |<br />
7<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
Open_tables 表示打开表的数量，Opened_tables表示打开过的表数量，如果Opened_tables数量过大，说明配置中 table_cache(5.1.3之后这个值叫做table_open_cache)值可能太小，我们查询一下服务器table_cache值<br />
1<br />
mysql&gt; mysql&gt; show variables like &#8216;table_cache&#8217;;<br />
2<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
3<br />
| Variable_name | Value |<br />
4<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
5<br />
| table_cache | 1024 |<br />
6<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
Open_tables / Opened_tables * 100% =69% 理想值 （&gt;= 85%）<br />
Open_tables / table_cache * 100% = 100% 理想值 ( 6 进程使用情况<br />
1<br />
mysql&gt; show global status like &#8216;Thread%&#8217;;<br />
2<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
3<br />
| Variable_name | Value |<br />
4<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
5<br />
| Threads_cached | 31 |<br />
6<br />
| Threads_connected | 239 |<br />
7<br />
| Threads_created | 2914 |<br />
8<br />
| Threads_running | 4 |<br />
9<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+</p>
<p>如果我们在MySQL服务器配置文件中设置了thread_cache_size，当客户端断开之后，服务器处理此客户的线程将会缓存起来以响应 下一个客户而不是销毁（前提是缓存数未达上限）。Threads_created表示创建过的线程数，如果发现Threads_created值过大的 话，表明 MySQL服务器一直在创建线程，这也是比较耗资源，可以适当增加配置文件中thread_cache_size值，查询服务器 thread_cache_size配置：<br />
1<br />
mysql&gt; show variables like &#8216;thread_cache_size&#8217;;<br />
2<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
3<br />
| Variable_name | Value |<br />
4<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
5<br />
| thread_cache_size | 32 |<br />
6<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+<br />
9, 查询缓存(query cache)<br />
01<br />
mysql&gt; show global status like &#8216;qcache%&#8217;;<br />
02<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;-+<br />
03<br />
| Variable_name | Value |<br />
04<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;-+<br />
05<br />
| Qcache_free_blocks | 2226 |<br />
06<br />
| Qcache_free_memory | 10794944 |<br />
07<br />
| Qcache_hits | 5385458 |<br />
08<br />
| Qcache_inserts | 1806301 |<br />
09<br />
| Qcache_lowmem_prunes | 433101 |<br />
10<br />
| Qcache_not_cached | 4429464 |<br />
11<br />
| Qcache_queries_in_cache | 7168 |<br />
12<br />
| Qcache_total_blocks | 16820 |<br />
13<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;-+<br />
Qcache_free_blocks：缓存中相邻内存块的个数。数目大说明可能有碎片。FLUSH QUERY CACHE会对缓存中的碎片进行整理，从而得到一个空闲块。<br />
Qcache_free_memory：缓存中的空闲内存。<br />
Qcache_hits：每次查询在缓存中命中时就增大<br />
Qcache_inserts：每次插入一个查询时就增大。命中次数除以插入次数就是不中比率。<br />
Qcache_lowmem_prunes：缓存出现内存不足并且必须要进行清理以便为更多查询提供空间的次数。这个数字最好长时间来看；如果这 个数字在不断增长，就表示可能碎片非常严重，或者内存很少。（上面的 free_blocks和free_memory可以告诉您属于哪种情况）<br />
Qcache_not_cached：不适合进行缓存的查询的数量，通常是由于这些查询不是 SELECT 语句或者用了now()之类的函数。<br />
Qcache_queries_in_cache：当前缓存的查询（和响应）的数量。<br />
Qcache_total_blocks：缓存中块的数量。<br />
我们再查询一下服务器关于query_cache的配置：<br />
01<br />
mysql&gt; show variables like &#8216;query_cache%&#8217;;<br />
02<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+<br />
03<br />
| Variable_name | Value |<br />
04<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+<br />
05<br />
| query_cache_limit | 33554432 |<br />
06<br />
| query_cache_min_res_unit | 4096 |<br />
07<br />
| query_cache_size | 33554432 |<br />
08<br />
| query_cache_type | ON |<br />
09<br />
| query_cache_wlock_invalidate | OFF |<br />
10<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;-+<br />
各字段的解释：<br />
query_cache_limit：超过此大小的查询将不缓存<br />
query_cache_min_res_unit：缓存块的最小大小<br />
query_cache_size：查询缓存大小<br />
query_cache_type：缓存类型，决定缓存什么样的查询，示例中表示不缓存 select sql_no_cache 查询<br />
query_cache_wlock_invalidate：当有其他客户端正在对MyISAM表进行写操作时，如果查询在query cache中，是否返回cache结果还是等写操作完成再读表获取结果。<br />
query_cache_min_res_unit的配置是一柄”双刃剑”，默认是4KB，设置值大对大数据查询有好处，但如果你的查询都是小数据查询，就容易造成内存碎片和浪费。<br />
查询缓存碎片率 = Qcache_free_blocks / Qcache_total_blocks * 100%<br />
如果查询缓存碎片率超过20%，可以用FLUSH QUERY CACHE整理缓存碎片，或者试试减小query_cache_min_res_unit，如果你的查询都是小数据量的话。<br />
查询缓存利用率 = (query_cache_size – Qcache_free_memory) / query_cache_size * 100%<br />
查询缓存利用率在25%以下的话说明query_cache_size设置的过大，可适当减小；查询缓存利用率在80％以上而且Qcache_lowmem_prunes &gt; 50的话说明query_cache_size可能有点小，要不就是碎片太多。<br />
查询缓存命中率 = (Qcache_hits – Qcache_inserts) / Qcache_hits * 100%<br />
示例服务器 查询缓存碎片率 ＝ 20.46％，查询缓存利用率 ＝ 62.26％，查询缓存命中率 ＝ 1.94％，命中率很差，可能写操作比较频繁吧，而且可能有些碎片。<br />
7 文件打开数(open_files)<br />
01<br />
mysql&gt; show global status like &#8216;open_files&#8217;;<br />
02<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
03<br />
| Variable_name | Value |<br />
04<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
05<br />
| Open_files | 821 |<br />
06<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
07<br />
08<br />
mysql&gt; show variables like &#8216;open_files_limit&#8217;;<br />
09<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
10<br />
| Variable_name | Value |<br />
11<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
12<br />
| open_files_limit | 65535 |<br />
13<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;-+<br />
比较合适的设置：Open_files / open_files_limit * 100% 正常<br />
8 表锁情况<br />
1<br />
mysql&gt; show global status like &#8216;table_locks%&#8217;;<br />
2<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+<br />
3<br />
| Variable_name | Value |<br />
4<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+<br />
5<br />
| Table_locks_immediate | 4257944 |<br />
6<br />
| Table_locks_waited | 25182 |<br />
7<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;+<br />
Table_locks_immediate 表示立即释放表锁数，Table_locks_waited表示需要等待的表锁数，如果 Table_locks_immediate / Table_locks_waited &gt; 5000，最好采用InnoDB引擎，因为InnoDB是行锁而MyISAM是表锁，对于高并发写入的应用InnoDB效果会好些.<br />
9 表扫描情况<br />
01<br />
mysql&gt; show global status like &#8216;handler_read%&#8217;;<br />
02<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;+<br />
03<br />
| Variable_name | Value |<br />
04<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;+<br />
05<br />
| Handler_read_first | 108763 |<br />
06<br />
| Handler_read_key | 92813521 |<br />
07<br />
| Handler_read_next | 486650793 |<br />
08<br />
| Handler_read_prev | 688726 |<br />
09<br />
| Handler_read_rnd | 9321362 |<br />
10<br />
| Handler_read_rnd_next | 153086384 |<br />
11<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;+&#8212;&#8212;&#8212;&#8211;+<br />
各字段解释参见http://hi.baidu.com/thinkinginlamp/blog/item/31690cd7c4bc5cdaa144df9c.html，调出服务器完成的查询请求次数：<br />
1<br />
mysql&gt; show global status like &#8216;com_select&#8217;;<br />
2<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+<br />
3<br />
| Variable_name | Value |<br />
4<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+<br />
5<br />
| Com_select | 2693147 |<br />
6<br />
+&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+<br />
计算表扫描率：<br />
表扫描率 ＝ Handler_read_rnd_next / Com_select<br />
如果表扫描率超过4000，说明进行了太多表扫描，很有可能索引没有建好，增加read_buffer_size值会有一些好处，但最好不要超过8MB</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/299/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>在PHP中利用LDAP通过活动目录（Active Directory）实现域用户登录验证</title>
		<link>http://www.hety.net/archives/295</link>
		<comments>http://www.hety.net/archives/295#comments</comments>
		<pubDate>Tue, 07 Feb 2012 09:24:32 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[个人日记]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=295</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><?php<br />
$host = "ad服务器IP:端口(默认是389)";<br />
$user = "用户名@域名";<br />
$pswd = "密码";<br />
$conn = ldap_connect($host) or die("Could not connect!" );<br />
if($conn){<br />
//设置参数<br />
ldap_set_option ( $conn, LDAP_OPT_PROTOCOL_VERSION, 3 );<br />
ldap_set_option ( $conn, LDAP_OPT_REFERRALS, 0 ); // Binding to ldap server<br />
$bd = ldap_bind($conn, $user, $pswd)  or die ("Could not bind");<br />
echo "ldap_bind success";<br />
}<br />
else{<br />
echo "Unable to connect to AD server";<br />
}<br />
?></p>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/295/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>[转] PHP之加解密: Mcrypt函数</title>
		<link>http://www.hety.net/archives/292</link>
		<comments>http://www.hety.net/archives/292#comments</comments>
		<pubDate>Wed, 01 Feb 2012 08:55:23 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[个人日记]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=292</guid>
		<description><![CDATA[PHP中自带了相当多的加密的方法，这里我们来看一下mcrypt扩展的使用方式。(也是在工作中需要用这个东西加密访问用户的Cookie的值，认真的学习了这个方面的内容。) 1.简介 Mcrypt是PHP的一个扩展，完成了常用加密算法的封装。其实该扩展是对mcrypt标准类库的封装，mcrypt完成了相当多的常用加密算法，如DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 和 GOST加密算法，并且提供了CBC、OFB、CFB 和 ECB 四种块加密的模型。 2.安装和使用 要使用该扩展，必须首先安装mcrypt标准类库，可以在http://mcrypt.sourceforge.net 下载。该扩展的编译和安装方式和常规的php扩展相同，不在详细说明了。 3.四种块加密模型 Mcrypt支持四种块加密模型，简要说明如下： a. MCRYPT_MODE_ECB(electronic codebook) 适合对小数量随机数据的加密，比如加密用户的登录密码之类的。 b. MCRYPT_MODE_CBC (cipher block chaining) 适合加密安全等级较高的重要文件类型。 c. MCRYPT_MODE_CFB (cipher feedback) 适合于需要对数据流的每一个字节进行加密的场合。 d. MCRYPT_MODE_OFB (output feedback, in 8bit) 和CFB模式兼容，但比CFB模式更安全。CFB模式会引起加密的错误扩散，如果一个byte出错，则其后续的所有byte都会出错。OFB模式则不会有此问题。但该模式的安全度不是很高，不建议使用。 e. MCRYPT_MODE_NOFB (output feedback, in nbit) 和OFB兼容，由于采用了块操作算法，安全度更高。 f. MCRYPT_MODE_STREAM 是为了WAKE或者RC4等流加密算法提供的额外模型。 NOFB和STREAM仅当mycrypt的版本号大于等于libmcrypt-2.4.x才有效。(现在基本上都是大于这个版本了，libmcrypt的最新主版本已经到4了) [...]]]></description>
			<content:encoded><![CDATA[<p>PHP中自带了相当多的加密的方法，这里我们来看一下mcrypt扩展的使用方式。(也是在工作中需要用这个东西加密访问用户的Cookie的值，认真的学习了这个方面的内容。)</p>
<p>1.简介<br />
Mcrypt是PHP的一个扩展，完成了常用加密算法的封装。其实该扩展是对mcrypt标准类库的封装，mcrypt完成了相当多的常用加密算法，如DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA, RC2 和 GOST加密算法，并且提供了CBC、OFB、CFB 和 ECB 四种块加密的模型。</p>
<p><span id="more-292"></span></p>
<p>2.安装和使用<br />
要使用该扩展，必须首先安装mcrypt标准类库，可以在http://mcrypt.sourceforge.net 下载。该扩展的编译和安装方式和常规的php扩展相同，不在详细说明了。</p>
<p>3.四种块加密模型<br />
Mcrypt支持四种块加密模型，简要说明如下：<br />
a. MCRYPT_MODE_ECB(electronic codebook) 适合对小数量随机数据的加密，比如加密用户的登录密码之类的。<br />
b. MCRYPT_MODE_CBC (cipher block chaining) 适合加密安全等级较高的重要文件类型。<br />
c. MCRYPT_MODE_CFB (cipher feedback) 适合于需要对数据流的每一个字节进行加密的场合。<br />
d. MCRYPT_MODE_OFB (output feedback, in 8bit) 和CFB模式兼容，但比CFB模式更安全。CFB模式会引起加密的错误扩散，如果一个byte出错，则其后续的所有byte都会出错。OFB模式则不会有此问题。但该模式的安全度不是很高，不建议使用。<br />
e. MCRYPT_MODE_NOFB (output feedback, in nbit) 和OFB兼容，由于采用了块操作算法，安全度更高。<br />
f. MCRYPT_MODE_STREAM 是为了WAKE或者RC4等流加密算法提供的额外模型。<br />
NOFB和STREAM仅当mycrypt的版本号大于等于libmcrypt-2.4.x才有效。(现在基本上都是大于这个版本了，libmcrypt的最新主版本已经到4了)</p>
<p>4.查看支持的算法和模型<br />
a. mcrypt_list_modes()列出当前环境支持的模型<br />
b. mcrypt_list_algorithms()列出当前环境支持的算法<br />
如命令行执行：<br />
php -r “var_dump(mcrypt_list_modes()); var_dump(mcrypt_list_algorithms());”<br />
即可列出所有的结果。</p>
<p>5.如何使用<br />
example1.<br />
<!--?php <br ?--> $key = “this is a secret key”;<br />
$input = “Let us meet at 9 o&#8217;clock at the secret place.”;<br />
$encrypted_data = mcrypt_ecb (MCRYPT_3DES, $key, $input, MCRYPT_ENCRYPT);<br />
?&gt;<br />
最简单的方式如example1中所示，该方法表明对$input使用3DES的算法进行加密，加密密钥是$key.不过这中直接调用的方法已经不被官方推荐使用，也建议大家在开发中不要使用此种方式，不一定哪天该方法就不能用了。在php5下使用此种方式调用时，能看到一条warning信息，提示“PHP Warning: attempt to use an empty IV, which is NOT recommend”。<br />
上述过程完成了数据的加密过程。首先选择加密算法和加密模式创建mcrypt的资源对象和IV,然后初始化加密所需的buffer(内存)，进行加密后再释放buffer，最后关闭资源对象。<br />
解密的过程和加密是基本相同，只要把mcrypt_generic($td, $input)替换成mdecrypt_generic($td, $input)就可以了，其它部分完全相同。当然，对于3des这种对称加密算法而言，加密、解密所用的key是必须完全相同的。</p>
<p>6. 有关IV<br />
不是所有的模型中都需要IV. CFB和OFB是必须有IV, CBC和EBC则是可选的。对于必选IV的模式来说，其加密和解密的IV的值必须完全相同，CBC和EBC则无此要求。可以相同也可以不同，没什么关系。</p>
<p>7.一个简单功能的加密解密类</p>
<p><!--?php <br ?--> 02 /**<br />
03 * 使用mcrypt扩展 加密解密<br />
04 *@author pangxl<br />
05 * @version 1.0<br />
06 */<br />
07 classMcrypthash<br />
08 {<br />
09 /**<br />
10 * 加密key<br />
11 *<br />
12 * @var string<br />
13 * @access private<br />
14 */<br />
15 private$mAuthkey=&#8217;T_test&#8217;;<br />
16<br />
17 function__construct()<br />
18 {<br />
19 if(!function_exists(&#8216;mcrypt_module_open&#8217;)){<br />
20 exit(&#8216;Fatal error: no mcrypt module &#8216;);<br />
21 }<br />
22 $this-&gt;setMd5();<br />
23 }<br />
24<br />
25 /**<br />
26 * 使用MD5加密key<br />
27 *<br />
28 * @return unknown<br />
29 */<br />
30 privatefunctionsetMd5()<br />
31 {<br />
32 $this-&gt;mAuthkey=md5($this-&gt;mAuthkey);<br />
33 }<br />
34<br />
35 /**<br />
36 * 加密字符串<br />
37 *<br />
38 * @param string $value 加密的串<br />
39 * @return string 加密后的结果<br />
40 * @package McrypthashComponent<br />
41 */<br />
42 publicfunctionencrypt($value=null){<br />
43 if(null==$value)returnfalse;<br />
44 $td=mcrypt_module_open(&#8216;tripledes&#8217;,”,&#8217;ecb&#8217;,”);<br />
45 $td_size=mcrypt_enc_get_iv_size($td);<br />
46 $iv=mcrypt_create_iv($td_size,MCRYPT_RAND);<br />
47 $key=substr($this-&gt;mAuthkey,0,$td_size);<br />
48 mcrypt_generic_init($td,$key,$iv);<br />
49 $ret=base64_encode(mcrypt_generic($td,$value));<br />
50 mcrypt_generic_deinit($td);<br />
51 mcrypt_module_close($td);<br />
52 return$ret;<br />
53 }<br />
54<br />
55 /**<br />
56 * 解密过程<br />
57 *<br />
58 * @param string $value 解密的过程<br />
59 * @return string<br />
60 * @package McrypthashComponent<br />
61 */<br />
62 publicfunctiondecrypt($value=null)<br />
63 {<br />
64 if(null==$value)returnfalse;<br />
65 $td=mcrypt_module_open(&#8216;tripledes&#8217;,”,&#8217;ecb&#8217;,”);<br />
66 $td_size=mcrypt_enc_get_iv_size($td);<br />
67 $iv=mcrypt_create_iv($td_size,MCRYPT_RAND);<br />
68 $key=substr($this-&gt;mAuthkey,0,$td_size);<br />
69 mcrypt_generic_init($td,$key,$iv);<br />
70 $ret=trim(mdecrypt_generic($td,base64_decode($value)));<br />
71 mcrypt_generic_deinit($td);<br />
72 mcrypt_module_close($td);<br />
73 return$ret;<br />
74 }<br />
75 }<br />
76 ?&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/292/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>mysql lock ，网站访问慢 ，Copying to tmp table ！（转）</title>
		<link>http://www.hety.net/archives/290</link>
		<comments>http://www.hety.net/archives/290#comments</comments>
		<pubDate>Wed, 01 Feb 2012 03:09:46 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[个人日记]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=290</guid>
		<description><![CDATA[最近常常碰到网站慢的情况，登陆到后台，查询一下 /opt/mysql/bin/mysqladmin processlist; 发现一个查询状态为： Copying to tmp table 而且此查询速度非常慢，基本一分钟左右才出来，后面是很多查询，状态为lock。 用命令杀掉此查询 /opt/mysql/bin/mysqladmin kill 进程号； 后面的查询一下子都好了。 ok, 找到了问题的原因，此查询效率太低。问一下程序员，找来此查询的代码，用工具进行一下简单分析。 （说明：这里是我不喜欢mysql的原因之一，mysql我不知道从哪里能看到内存正在执行哪些sql,以及完整的sql是什么。） explain SELECT a.* , IF(b.`gid` IS NULL , 0, SUM( b.`mark` )) AS `score` , IF(c.`b_times` IS NULL ,0, c.`b_times`) AS `day_b_times` FROM `league_info` AS a LEFT JOIN `mark_logs` AS b ON b.`day_date` = &#8217;2006-03-22&#8242; AND b.`gid` = [...]]]></description>
			<content:encoded><![CDATA[<p>最近常常碰到网站慢的情况，登陆到后台，查询一下 /opt/mysql/bin/mysqladmin processlist;<br />
发现一个查询状态为： Copying to tmp table 而且此查询速度非常慢，基本一分钟左右才出来，后面是很多查询，状态为lock。<br />
用命令杀掉此查询 /opt/mysql/bin/mysqladmin kill 进程号；<br />
后面的查询一下子都好了。 ok, 找到了问题的原因，此查询效率太低。问一下程序员，找来此查询的代码，用工具进行一下简单分析。</p>
<p><span id="more-290"></span><br />
（说明：这里是我不喜欢mysql的原因之一，mysql我不知道从哪里能看到内存正在执行哪些sql,以及完整的sql是什么。）<br />
explain<br />
SELECT a.* , IF(b.`gid` IS NULL , 0, SUM( b.`mark` )) AS `score` ,<br />
IF(c.`b_times` IS NULL ,0, c.`b_times`) AS `day_b_times`<br />
FROM `league_info` AS a LEFT JOIN `mark_logs` AS b ON b.`day_date` = &#8217;2006-03-22&#8242;<br />
AND b.`gid` = a.`id` LEFT JOIN `visit_stat` AS c ON c.`stat_id` = a.`id` AND c.`type` = &#8216;league&#8217;<br />
AND c.`day`=&#8217;2006_03_22&#8242; WHERE a.`validate`=&#8217;1&#8242; GROUP BY a.`id`<br />
ORDER BY day_b_times DESC, a.`id`;<br />
+&#8212;-+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |<br />
+&#8212;-+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+<br />
| 1 | SIMPLE | a | ref | league_info_idx4 | league_info_idx4 | 1 | const | 1441 | Using where; Using temporary; Using filesort |<br />
| 1 | SIMPLE | b | ref | mark_logs_idx1,mark_logs_idx2 | mark_logs_idx1 | 4 | new5jia1.a.id | 56 | |<br />
| 1 | SIMPLE | c | ref | visit_stat_idx1 | visit_stat_idx1 | 26 | new5jia1.a.id,const | 10 | |<br />
+&#8212;-+&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;-+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;+&#8212;&#8212;+&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-+</p>
<p>看了一下，其实此查询嵌套用得不好，作为程序员应该尽量避免用 not in ，in, left join ,right join 等等，不过这些不归我管，我只能提一些建议。<br />
（顺便说一声：oracle里面可以用 exist ,not exist, minus等代替in ,not in 效率高出很多 ）<br />
此分析对我没有太大的作用，因此用google查询了一下，发现网上一篇文章讲得很好，<br />
（ http://clay111.blogchina.com/4721079.html 我给转贴了，感兴趣可以看看）<br />
Copying to tmp table on disk The temporary result set was larger than tmp_table_size and the<br />
thread is now changing the in memory-based temporary table to a disk based one to save memory.<br />
哦，原来是这样的，如果查询超出了tmp_table_size的限制，那么mysql用/tmp保存查询结果，然后返回给客户端。<br />
set global tmp_table_size=209715200 (200M)</p>
<p>再次运行此查询,用/opt/mysql/bin/mysqladmin processlist; 进行观察,发现不会出现上述问题.<br />
至此问题解决.</p>
<p>调节tmp_table_size 的时候发现另外一些参数<br />
Qcache_queries_in_cache 在缓存中已注册的查询数目<br />
Qcache_inserts 被加入到缓存中的查询数目<br />
Qcache_hits 缓存采样数数目<br />
Qcache_lowmem_prunes 因为缺少内存而被从缓存中删除的查询数目<br />
Qcache_not_cached 没有被缓存的查询数目 (不能被缓存的，或由于 QUERY_CACHE_TYPE)<br />
Qcache_free_memory 查询缓存的空闲内存总数<br />
Qcache_free_blocks 查询缓存中的空闲内存块的数目<br />
Qcache_total_blocks 查询缓存中的块的总数目</p>
<p>Qcache_free_memory 可以缓存一些常用的查询,如果是常用的sql会被装载到内存。那样会增加数据库访问速度。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/290/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>使用rsync同步文件</title>
		<link>http://www.hety.net/archives/287</link>
		<comments>http://www.hety.net/archives/287#comments</comments>
		<pubDate>Wed, 09 Nov 2011 08:14:22 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=287</guid>
		<description><![CDATA[1.rsync [OPTION]&#8230; SRC DEST 同步拷贝本地文件：rsync -a /data /backup 2.rsync [OPTION]&#8230; SRC [USER@]HOST:DEST 使用远程ssh将本地的内容拷贝到远程机器： rsync -avz /data root@192.168.X.X:/backup 如果用ssh 带端口如： rsync -avz “-e ssh 9898&#8243; /data root@192.168.X.X:/backup 3.rsync [OPTION]&#8230; [USER@]HOST:SRC DEST 使用远程ssh将远程机器的内容拷贝到本地机器： rsync -avz root@192.168.x.x:/data /backup 4.rsync [OPTION]&#8230; [USER@]HOST::SRC DEST 从远程rsync服务器中拷贝文件到本地机：(当执行计划任务时为此模式) rsync -av root@1192.168.x.x::www /databack 5.rsync [OPTION]&#8230; SRC [USER@]HOST::DEST 从本地机器拷贝文件到远程rsync服务器中:(当执行计划任务时为此模式) rsync -av /databack root@192.168.x.x::www 6.rsync [OPTION]&#8230; [...]]]></description>
			<content:encoded><![CDATA[<div>1.rsync [OPTION]&#8230; SRC DEST</div>
<div>同步拷贝本地文件：rsync -a /data /backup</div>
<div></div>
<div><span style="font-family: 宋体;">2.rsync [OPTION]&#8230; SRC [USER@]HOST:DEST</span></div>
<div>使用远程ssh将本地的内容拷贝到远程机器：</div>
<div><span id="more-287"></span></div>
<div><span style="color: #555555;">rsync -avz /data root@192.168.X.X</span><span style="color: #ff0000;">:</span><span style="color: #555555;">/backup</span></div>
<div><span style="color: #555555;">如果用ssh 带端口如：</span></div>
<div><span style="color: #555555;"><span style="color: #555555;">rsync -avz “-e ssh 9898&#8243; /data root@192.168.X.X</span><span style="color: #ff0000;">:</span><span style="color: #555555;">/backup</span></span></div>
<div><span style="color: #555555;"><span style="color: #555555;"><br />
</span></span></div>
<div><span style="font-family: 宋体;">3.rsync [OPTION]&#8230; [USER@]HOST:SRC DEST</span></div>
<div>使用远程ssh将远程机器的内容拷贝到本地机器：</div>
<div><span style="color: #555555;">rsync -avz root@192.168.x.x</span><span style="color: #ff0000;">:</span><span style="color: #555555;">/data /backup</span></div>
<div><span style="color: #555555;"><br />
</span></div>
<div><span style="font-family: 宋体;">4.rsync [OPTION]&#8230; [USER@]HOST::SRC DEST</span></div>
<div><span style="font-family: 宋体;">从</span>远程rsync服务器中拷贝文件到本地机：(当执行计划任务时为此模式)</div>
<div><span style="color: #555555;">rsync -av root@1</span><span style="color: #ed1c24;">192.168.x.x::</span><span style="color: #555555;">www /databack</span></div>
<div><span style="color: #555555;"><br />
</span></div>
<div><span style="font-family: 宋体;">5.rsync [OPTION]&#8230; SRC [USER@]HOST::DEST</span></div>
<div>从本地机器拷贝文件到远程rsync服务器中:(当执行计划任务时为此模式)</div>
<div><span style="color: #555555;">rsync -av /databack root@</span><span style="color: #ff0000;">192.168.x.x::</span><span style="color: #555555;">www</span></div>
<div><span style="color: #555555;"><br />
</span></div>
<div><span style="font-family: 宋体;">6.rsync [OPTION]&#8230; rsync://[USER@]HOST[:PORT]/SRC [DEST]</span></div>
<p>一般使用的参数有：</p>
<p>-a(&#8211;archive)：归档模式，表示以递归方式传输文件，并保持所有文件属性，等于-rlptgoD。<br />
-z(&#8211;compress)：对备份的文件在传输时进行压缩处理。<br />
&#8211;progress：在传输时显示传输过程。<br />
&#8211;delete：删除那些DST中SRC没有的文件<br />
&#8211;config=FILE：指定其他的配置文件，不使用默认的rsyncd.conf文件<br />
&#8211;password-file=FILE 从FILE中得到密码</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/287/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>linux上挂载移动存储设备</title>
		<link>http://www.hety.net/archives/283</link>
		<comments>http://www.hety.net/archives/283#comments</comments>
		<pubDate>Wed, 09 Nov 2011 07:37:35 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=283</guid>
		<description><![CDATA[前几天去客户部署系统，要用移动设备，对于我这个只会linux简单操作命令的菜鸟来说，什么都得先准备着！ 1.在插入U盘或硬盘之前,在命令行窗口运行:fdisk -l 命令,系统将显示目前所能识别到的硬件存储设备; 如: sda sdb 等信息。硬盘或存储设备一般都是以sd开头. 2.插入U盘或硬盘,再次运行fdisk -l 命令,系统将再次显示目前所能识别到的硬件存储设备,比较两次输出的不各,将发现第二次运行时会增加一些内容; 3.运行mount,如: #mkdir /mnt/usb #mount /dev/sda /mnt/usb 4.运行完毕,可以直接在/mnt/usb目录下对U盘或移动硬盘的数据进行访问或操作; 5.想断开U盘或移动硬盘之前,运行umount命令,保证数据不会造成丢失,命令如下: #umount /dev/sdc 6. 对于有中文文件名的盘，需要增加一些选项，例如：如果是ntfs格式硬盘，utf8的文件名 挂载命令就是： #mount -t ntfs -o nls=utf8 /dev/sdc1 /mnt/usb 如果是FAT32格式的，可能就是 #mount -t vfat -o codepage=936,iocharset=cp936 /dev/sdc2 /mnt/winc 或者 #mount -t vfat -o codepage=936,iocharset=utf8 /dev/sdc2 /mnt/winc]]></description>
			<content:encoded><![CDATA[<p>前几天去客户部署系统，要用移动设备，对于我这个只会linux简单操作命令的菜鸟来说，什么都得先准备着！</p>
<div id="_mcePaste"><span style="color: #9a9a9a; font-family: arial; line-height: 18px;"></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;"><strong>1</strong>.在插入U盘或硬盘之前,在命令行窗口运行:fdisk -l 命令,系统将显示目前所能识别到的硬件存储设备;<br />
如:</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;">sda<br />
sdb<br />
等信息。硬盘或存储设备一般都是以sd开头.</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;"><span id="more-283"></span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;"><strong>2</strong>.插入U盘或硬盘,再次运行fdisk -l 命令,系统将再次显示目前所能识别到的硬件存储设备,比较两次输出的不各,将发现第二次运行时会增加一些内容;</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;"><strong>3</strong>.运行mount,如:<br />
<span style="color: #ff0000;">#mkdir /mnt/usb<br />
#mount /dev/sda /mnt/usb</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;"><strong>4</strong>.运行完毕,可以直接在/mnt/usb目录下对U盘或移动硬盘的数据进行访问或操作;</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;"><strong>5</strong>.想断开U盘或移动硬盘之前,运行umount命令,保证数据不会造成丢失,命令如下:<br />
<span style="color: #ff0000;">#umount /dev/sdc</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;">6. 对于有中文文件名的盘，需要增加一些选项，例如：如果是ntfs格式硬盘，utf8的文件名</p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;">挂载命令就是： <span style="color: #ff0000;">#mount -t ntfs -o nls=utf8 /dev/sdc1 /mnt/usb</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;">如果是FAT32格式的，可能就是 <span style="color: #ff0000;">#mount -t vfat -o codepage=936,iocharset=cp936 /dev/sdc2 /mnt/winc</span></p>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; color: #6d6d6d; line-height: 26px; padding: 0px;"><span style="color: #ff0000;">或者 </span><span style="color: #ff0000;">#mount -t vfat -o codepage=936,iocharset=utf8 /dev/sdc2 /mnt/winc</span></p>
<p></span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/283/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>RGB颜色查询对照表</title>
		<link>http://www.hety.net/archives/280</link>
		<comments>http://www.hety.net/archives/280#comments</comments>
		<pubDate>Wed, 09 Nov 2011 07:13:23 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[html css]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=280</guid>
		<description><![CDATA[RGB颜色查询对照表 因为兼容性问题，色阶板功能只能在IE浏览器中运行 RGB颜色对照表 #FFFFFF #FFFFF0 #FFFFE0 #FFFF00 #FFFAFA #FFFAF0 #FFFACD #FFF8DC #FFF68F #FFF5EE #FFF0F5 #FFEFDB #FFEFD5 #FFEC8B #FFEBCD #FFE7BA #FFE4E1 #FFE4C4 #FFE4B5 #FFE1FF #FFDEAD #FFDAB9 #FFD700 #FFD39B #FFC1C1 #FFC125 #FFC0CB #FFBBFF #FFB90F #FFB6C1 #FFB5C5 #FFAEB9 #FFA54F #FFA500 #FFA07A #FF8C69 #FF8C00 #FF83FA #FF82AB #FF8247 #FF7F50 #FF7F24 #FF7F00 #FF7256 #FF6EB4 #FF6A6A #FF69B4 #FF6347 #FF4500 #FF4040 #FF3E96 #FF34B3 [...]]]></description>
			<content:encoded><![CDATA[<div>
<table border="0" cellspacing="0" cellpadding="0" width="600" align="center">
<tbody>
<tr>
<td align="left"></td>
</tr>
<tr>
<td width="364" height="26" align="left" valign="bottom">
<h2>RGB颜色查询对照表</h2>
</td>
</tr>
<tr>
<td>
<table border="0" cellspacing="0" cellpadding="0" width="100%">
<tbody>
<tr>
<td valign="top">
<table border="0" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td colspan="2" width="593" valign="top"></td>
</tr>
<tr>
<td colspan="2" width="593" height="71%" align="middle" bgcolor="#FFFFF3"></td>
</tr>
<tr>
<td colspan="2" width="593" height="71%" align="middle" bgcolor="#FFFFF3">
<h3>因为兼容性问题，色阶板功能只能在IE浏览器中运行</h3>
<p><strong>RGB</strong>颜色对照表</p>
<p><span id="more-280"></span></p>
<div>
<table cellspacing="3" width="550">
<tbody>
<tr>
<td width="30" height="30" bgcolor="#ffffff"></td>
<td>#FFFFFF</td>
<td width="30" height="30" bgcolor="#fffff0"></td>
<td>#FFFFF0</td>
<td width="30" height="30" bgcolor="#ffffe0"></td>
<td>#FFFFE0</td>
<td width="30" height="30" bgcolor="#ffff00"></td>
<td>#FFFF00</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#fffafa"></td>
<td>#FFFAFA</td>
<td width="30" height="30" bgcolor="#fffaf0"></td>
<td>#FFFAF0</td>
<td width="30" height="30" bgcolor="#fffacd"></td>
<td>#FFFACD</td>
<td width="30" height="30" bgcolor="#fff8dc"></td>
<td>#FFF8DC</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#fff68f"></td>
<td>#FFF68F</td>
<td width="30" height="30" bgcolor="#fff5ee"></td>
<td>#FFF5EE</td>
<td width="30" height="30" bgcolor="#fff0f5"></td>
<td>#FFF0F5</td>
<td width="30" height="30" bgcolor="#ffefdb"></td>
<td>#FFEFDB</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ffefd5"></td>
<td>#FFEFD5</td>
<td width="30" height="30" bgcolor="#ffec8b"></td>
<td>#FFEC8B</td>
<td width="30" height="30" bgcolor="#ffebcd"></td>
<td>#FFEBCD</td>
<td width="30" height="30" bgcolor="#ffe7ba"></td>
<td>#FFE7BA</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ffe4e1"></td>
<td>#FFE4E1</td>
<td width="30" height="30" bgcolor="#ffe4c4"></td>
<td>#FFE4C4</td>
<td width="30" height="30" bgcolor="#ffe4b5"></td>
<td>#FFE4B5</td>
<td width="30" height="30" bgcolor="#ffe1ff"></td>
<td>#FFE1FF</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ffdead"></td>
<td>#FFDEAD</td>
<td width="30" height="30" bgcolor="#ffdab9"></td>
<td>#FFDAB9</td>
<td width="30" height="30" bgcolor="#ffd700"></td>
<td>#FFD700</td>
<td width="30" height="30" bgcolor="#ffd39b"></td>
<td>#FFD39B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ffc1c1"></td>
<td>#FFC1C1</td>
<td width="30" height="30" bgcolor="#ffc125"></td>
<td>#FFC125</td>
<td width="30" height="30" bgcolor="#ffc0cb"></td>
<td>#FFC0CB</td>
<td width="30" height="30" bgcolor="#ffbbff"></td>
<td>#FFBBFF</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ffb90f"></td>
<td>#FFB90F</td>
<td width="30" height="30" bgcolor="#ffb6c1"></td>
<td>#FFB6C1</td>
<td width="30" height="30" bgcolor="#ffb5c5"></td>
<td>#FFB5C5</td>
<td width="30" height="30" bgcolor="#ffaeb9"></td>
<td>#FFAEB9</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ffa54f"></td>
<td>#FFA54F</td>
<td width="30" height="30" bgcolor="#ffa500"></td>
<td>#FFA500</td>
<td width="30" height="30" bgcolor="#ffa07a"></td>
<td>#FFA07A</td>
<td width="30" height="30" bgcolor="#ff8c69"></td>
<td>#FF8C69</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ff8c00"></td>
<td>#FF8C00</td>
<td width="30" height="30" bgcolor="#ff83fa"></td>
<td>#FF83FA</td>
<td width="30" height="30" bgcolor="#ff82ab"></td>
<td>#FF82AB</td>
<td width="30" height="30" bgcolor="#ff8247"></td>
<td>#FF8247</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ff7f50"></td>
<td>#FF7F50</td>
<td width="30" height="30" bgcolor="#ff7f24"></td>
<td>#FF7F24</td>
<td width="30" height="30" bgcolor="#ff7f00"></td>
<td>#FF7F00</td>
<td width="30" height="30" bgcolor="#ff7256"></td>
<td>#FF7256</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ff6eb4"></td>
<td>#FF6EB4</td>
<td width="30" height="30" bgcolor="#ff6a6a"></td>
<td>#FF6A6A</td>
<td width="30" height="30" bgcolor="#ff69b4"></td>
<td>#FF69B4</td>
<td width="30" height="30" bgcolor="#ff6347"></td>
<td>#FF6347</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ff4500"></td>
<td>#FF4500</td>
<td width="30" height="30" bgcolor="#ff4040"></td>
<td>#FF4040</td>
<td width="30" height="30" bgcolor="#ff3e96"></td>
<td>#FF3E96</td>
<td width="30" height="30" bgcolor="#ff34b3"></td>
<td>#FF34B3</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ff3030"></td>
<td>#FF3030</td>
<td width="30" height="30" bgcolor="#ff1493"></td>
<td>#FF1493</td>
<td width="30" height="30" bgcolor="#ff00ff"></td>
<td>#FF00FF</td>
<td width="30" height="30" bgcolor="#ff0000"></td>
<td>#FF0000</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#fdf5e6"></td>
<td>#FDF5E6</td>
<td width="30" height="30" bgcolor="#fcfcfc"></td>
<td>#FCFCFC</td>
<td width="30" height="30" bgcolor="#fafafa"></td>
<td>#FAFAFA</td>
<td width="30" height="30" bgcolor="#fafad2"></td>
<td>#FAFAD2</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#faf0e6"></td>
<td>#FAF0E6</td>
<td width="30" height="30" bgcolor="#faebd7"></td>
<td>#FAEBD7</td>
<td width="30" height="30" bgcolor="#fa8072"></td>
<td>#FA8072</td>
<td width="30" height="30" bgcolor="#f8f8ff"></td>
<td>#F8F8FF</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#f7f7f7"></td>
<td>#F7F7F7</td>
<td width="30" height="30" bgcolor="#f5fffa"></td>
<td>#F5FFFA</td>
<td width="30" height="30" bgcolor="#f5f5f5"></td>
<td>#F5F5F5</td>
<td width="30" height="30" bgcolor="#f5f5dc"></td>
<td>#F5F5DC</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#f5deb3"></td>
<td>#F5DEB3</td>
<td width="30" height="30" bgcolor="#f4f4f4"></td>
<td>#F4F4F4</td>
<td width="30" height="30" bgcolor="#f4a460"></td>
<td>#F4A460</td>
<td width="30" height="30" bgcolor="#f2f2f2"></td>
<td>#F2F2F2</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#f0ffff"></td>
<td>#F0FFFF</td>
<td width="30" height="30" bgcolor="#f0fff0"></td>
<td>#F0FFF0</td>
<td width="30" height="30" bgcolor="#f0f8ff"></td>
<td>#F0F8FF</td>
<td width="30" height="30" bgcolor="#f0f0f0"></td>
<td>#F0F0F0</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#f0e68c"></td>
<td>#F0E68C</td>
<td width="30" height="30" bgcolor="#f08080"></td>
<td>#F08080</td>
<td width="30" height="30" bgcolor="#eeeee0"></td>
<td>#EEEEE0</td>
<td width="30" height="30" bgcolor="#eeeed1"></td>
<td>#EEEED1</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#eeee00"></td>
<td>#EEEE00</td>
<td width="30" height="30" bgcolor="#eee9e9"></td>
<td>#EEE9E9</td>
<td width="30" height="30" bgcolor="#eee9bf"></td>
<td>#EEE9BF</td>
<td width="30" height="30" bgcolor="#eee8cd"></td>
<td>#EEE8CD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#eee8aa"></td>
<td>#EEE8AA</td>
<td width="30" height="30" bgcolor="#eee685"></td>
<td>#EEE685</td>
<td width="30" height="30" bgcolor="#eee5de"></td>
<td>#EEE5DE</td>
<td width="30" height="30" bgcolor="#eee0e5"></td>
<td>#EEE0E5</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#eedfcc"></td>
<td>#EEDFCC</td>
<td width="30" height="30" bgcolor="#eedc82"></td>
<td>#EEDC82</td>
<td width="30" height="30" bgcolor="#eed8ae"></td>
<td>#EED8AE</td>
<td width="30" height="30" bgcolor="#eed5d2"></td>
<td>#EED5D2</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#eed5b7"></td>
<td>#EED5B7</td>
<td width="30" height="30" bgcolor="#eed2ee"></td>
<td>#EED2EE</td>
<td width="30" height="30" bgcolor="#eecfa1"></td>
<td>#EECFA1</td>
<td width="30" height="30" bgcolor="#eecbad"></td>
<td>#EECBAD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#eec900"></td>
<td>#EEC900</td>
<td width="30" height="30" bgcolor="#eec591"></td>
<td>#EEC591</td>
<td width="30" height="30" bgcolor="#eeb4b4"></td>
<td>#EEB4B4</td>
<td width="30" height="30" bgcolor="#eeb422"></td>
<td>#EEB422</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#eeaeee"></td>
<td>#EEAEEE</td>
<td width="30" height="30" bgcolor="#eead0e"></td>
<td>#EEAD0E</td>
<td width="30" height="30" bgcolor="#eea9b8"></td>
<td>#EEA9B8</td>
<td width="30" height="30" bgcolor="#eea2ad"></td>
<td>#EEA2AD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ee9a49"></td>
<td>#EE9A49</td>
<td width="30" height="30" bgcolor="#ee9a00"></td>
<td>#EE9A00</td>
<td width="30" height="30" bgcolor="#ee9572"></td>
<td>#EE9572</td>
<td width="30" height="30" bgcolor="#ee82ee"></td>
<td>#EE82EE</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ee8262"></td>
<td>#EE8262</td>
<td width="30" height="30" bgcolor="#ee7ae9"></td>
<td>#EE7AE9</td>
<td width="30" height="30" bgcolor="#ee799f"></td>
<td>#EE799F</td>
<td width="30" height="30" bgcolor="#ee7942"></td>
<td>#EE7942</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ee7621"></td>
<td>#EE7621</td>
<td width="30" height="30" bgcolor="#ee7600"></td>
<td>#EE7600</td>
<td width="30" height="30" bgcolor="#ee6aa7"></td>
<td>#EE6AA7</td>
<td width="30" height="30" bgcolor="#ee6a50"></td>
<td>#EE6A50</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ee6363"></td>
<td>#EE6363</td>
<td width="30" height="30" bgcolor="#ee5c42"></td>
<td>#EE5C42</td>
<td width="30" height="30" bgcolor="#ee4000"></td>
<td>#EE4000</td>
<td width="30" height="30" bgcolor="#ee3b3b"></td>
<td>#EE3B3B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ee3a8c"></td>
<td>#EE3A8C</td>
<td width="30" height="30" bgcolor="#ee30a7"></td>
<td>#EE30A7</td>
<td width="30" height="30" bgcolor="#ee2c2c"></td>
<td>#EE2C2C</td>
<td width="30" height="30" bgcolor="#ee1289"></td>
<td>#EE1289</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#ee00ee"></td>
<td>#EE00EE</td>
<td width="30" height="30" bgcolor="#ee0000"></td>
<td>#EE0000</td>
<td width="30" height="30" bgcolor="#ededed"></td>
<td>#EDEDED</td>
<td width="30" height="30" bgcolor="#ebebeb"></td>
<td>#EBEBEB</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#eaeaea"></td>
<td>#EAEAEA</td>
<td width="30" height="30" bgcolor="#e9967a"></td>
<td>#E9967A</td>
<td width="30" height="30" bgcolor="#e8e8e8"></td>
<td>#E8E8E8</td>
<td width="30" height="30" bgcolor="#e6e6fa"></td>
<td>#E6E6FA</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#e5e5e5"></td>
<td>#E5E5E5</td>
<td width="30" height="30" bgcolor="#e3e3e3"></td>
<td>#E3E3E3</td>
<td width="30" height="30" bgcolor="#e0ffff"></td>
<td>#E0FFFF</td>
<td width="30" height="30" bgcolor="#e0eeee"></td>
<td>#E0EEEE</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#e0eee0"></td>
<td>#E0EEE0</td>
<td width="30" height="30" bgcolor="#e0e0e0"></td>
<td>#E0E0E0</td>
<td width="30" height="30" bgcolor="#e066ff"></td>
<td>#E066FF</td>
<td width="30" height="30" bgcolor="#dedede"></td>
<td>#DEDEDE</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#deb887"></td>
<td>#DEB887</td>
<td width="30" height="30" bgcolor="#dda0dd"></td>
<td>#DDA0DD</td>
<td width="30" height="30" bgcolor="#dcdcdc"></td>
<td>#DCDCDC</td>
<td width="30" height="30" bgcolor="#dc143c"></td>
<td>#DC143C</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#dbdbdb"></td>
<td>#DBDBDB</td>
<td width="30" height="30" bgcolor="#db7093"></td>
<td>#DB7093</td>
<td width="30" height="30" bgcolor="#daa520"></td>
<td>#DAA520</td>
<td width="30" height="30" bgcolor="#da70d6"></td>
<td>#DA70D6</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#d9d9d9"></td>
<td>#D9D9D9</td>
<td width="30" height="30" bgcolor="#d8bfd8"></td>
<td>#D8BFD8</td>
<td width="30" height="30" bgcolor="#d6d6d6"></td>
<td>#D6D6D6</td>
<td width="30" height="30" bgcolor="#d4d4d4"></td>
<td>#D4D4D4</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#d3d3d3"></td>
<td>#D3D3D3</td>
<td width="30" height="30" bgcolor="#d2b48c"></td>
<td>#D2B48C</td>
<td width="30" height="30" bgcolor="#d2691e"></td>
<td>#D2691E</td>
<td width="30" height="30" bgcolor="#d1eeee"></td>
<td>#D1EEEE</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#d1d1d1"></td>
<td>#D1D1D1</td>
<td width="30" height="30" bgcolor="#d15fee"></td>
<td>#D15FEE</td>
<td width="30" height="30" bgcolor="#d02090"></td>
<td>#D02090</td>
<td width="30" height="30" bgcolor="#cfcfcf"></td>
<td>#CFCFCF</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cdcdc1"></td>
<td>#CDCDC1</td>
<td width="30" height="30" bgcolor="#cdcdb4"></td>
<td>#CDCDB4</td>
<td width="30" height="30" bgcolor="#cdcd00"></td>
<td>#CDCD00</td>
<td width="30" height="30" bgcolor="#cdc9c9"></td>
<td>#CDC9C9</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cdc9a5"></td>
<td>#CDC9A5</td>
<td width="30" height="30" bgcolor="#cdc8b1"></td>
<td>#CDC8B1</td>
<td width="30" height="30" bgcolor="#cdc673"></td>
<td>#CDC673</td>
<td width="30" height="30" bgcolor="#cdc5bf"></td>
<td>#CDC5BF</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cdc1c5"></td>
<td>#CDC1C5</td>
<td width="30" height="30" bgcolor="#cdc0b0"></td>
<td>#CDC0B0</td>
<td width="30" height="30" bgcolor="#cdbe70"></td>
<td>#CDBE70</td>
<td width="30" height="30" bgcolor="#cdba96"></td>
<td>#CDBA96</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cdb7b5"></td>
<td>#CDB7B5</td>
<td width="30" height="30" bgcolor="#cdb79e"></td>
<td>#CDB79E</td>
<td width="30" height="30" bgcolor="#cdb5cd"></td>
<td>#CDB5CD</td>
<td width="30" height="30" bgcolor="#cdb38b"></td>
<td>#CDB38B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cdaf95"></td>
<td>#CDAF95</td>
<td width="30" height="30" bgcolor="#cdad00"></td>
<td>#CDAD00</td>
<td width="30" height="30" bgcolor="#cdaa7d"></td>
<td>#CDAA7D</td>
<td width="30" height="30" bgcolor="#cd9b9b"></td>
<td>#CD9B9B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cd9b1d"></td>
<td>#CD9B1D</td>
<td width="30" height="30" bgcolor="#cd96cd"></td>
<td>#CD96CD</td>
<td width="30" height="30" bgcolor="#cd950c"></td>
<td>#CD950C</td>
<td width="30" height="30" bgcolor="#cd919e"></td>
<td>#CD919E</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cd8c95"></td>
<td>#CD8C95</td>
<td width="30" height="30" bgcolor="#cd853f"></td>
<td>#CD853F</td>
<td width="30" height="30" bgcolor="#cd8500"></td>
<td>#CD8500</td>
<td width="30" height="30" bgcolor="#cd8162"></td>
<td>#CD8162</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cd7054"></td>
<td>#CD7054</td>
<td width="30" height="30" bgcolor="#cd69c9"></td>
<td>#CD69C9</td>
<td width="30" height="30" bgcolor="#cd6889"></td>
<td>#CD6889</td>
<td width="30" height="30" bgcolor="#cd6839"></td>
<td>#CD6839</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cd661d"></td>
<td>#CD661D</td>
<td width="30" height="30" bgcolor="#cd6600"></td>
<td>#CD6600</td>
<td width="30" height="30" bgcolor="#cd6090"></td>
<td>#CD6090</td>
<td width="30" height="30" bgcolor="#cd5c5c"></td>
<td>#CD5C5C</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cd5b45"></td>
<td>#CD5B45</td>
<td width="30" height="30" bgcolor="#cd5555"></td>
<td>#CD5555</td>
<td width="30" height="30" bgcolor="#cd4f39"></td>
<td>#CD4F39</td>
<td width="30" height="30" bgcolor="#cd3700"></td>
<td>#CD3700</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cd3333"></td>
<td>#CD3333</td>
<td width="30" height="30" bgcolor="#cd3278"></td>
<td>#CD3278</td>
<td width="30" height="30" bgcolor="#cd2990"></td>
<td>#CD2990</td>
<td width="30" height="30" bgcolor="#cd2626"></td>
<td>#CD2626</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#cd1076"></td>
<td>#CD1076</td>
<td width="30" height="30" bgcolor="#cd00cd"></td>
<td>#CD00CD</td>
<td width="30" height="30" bgcolor="#cd0000"></td>
<td>#CD0000</td>
<td width="30" height="30" bgcolor="#cccccc"></td>
<td>#CCCCCC</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#caff70"></td>
<td>#CAFF70</td>
<td width="30" height="30" bgcolor="#cae1ff"></td>
<td>#CAE1FF</td>
<td width="30" height="30" bgcolor="#c9c9c9"></td>
<td>#C9C9C9</td>
<td width="30" height="30" bgcolor="#c7c7c7"></td>
<td>#C7C7C7</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#c71585"></td>
<td>#C71585</td>
<td width="30" height="30" bgcolor="#c6e2ff"></td>
<td>#C6E2FF</td>
<td width="30" height="30" bgcolor="#c67171"></td>
<td>#C67171</td>
<td width="30" height="30" bgcolor="#c5c1aa"></td>
<td>#C5C1AA</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#c4c4c4"></td>
<td>#C4C4C4</td>
<td width="30" height="30" bgcolor="#c2c2c2"></td>
<td>#C2C2C2</td>
<td width="30" height="30" bgcolor="#c1ffc1"></td>
<td>#C1FFC1</td>
<td width="30" height="30" bgcolor="#c1cdcd"></td>
<td>#C1CDCD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#c1cdc1"></td>
<td>#C1CDC1</td>
<td width="30" height="30" bgcolor="#c1c1c1"></td>
<td>#C1C1C1</td>
<td width="30" height="30" bgcolor="#c0ff3e"></td>
<td>#C0FF3E</td>
<td width="30" height="30" bgcolor="#bfefff"></td>
<td>#BFEFFF</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#bfbfbf"></td>
<td>#BFBFBF</td>
<td width="30" height="30" bgcolor="#bf3eff"></td>
<td>#BF3EFF</td>
<td width="30" height="30" bgcolor="#bebebe"></td>
<td>#BEBEBE</td>
<td width="30" height="30" bgcolor="#bdbdbd"></td>
<td>#BDBDBD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#bdb76b"></td>
<td>#BDB76B</td>
<td width="30" height="30" bgcolor="#bcee68"></td>
<td>#BCEE68</td>
<td width="30" height="30" bgcolor="#bcd2ee"></td>
<td>#BCD2EE</td>
<td width="30" height="30" bgcolor="#bc8f8f"></td>
<td>#BC8F8F</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#bbffff"></td>
<td>#BBFFFF</td>
<td width="30" height="30" bgcolor="#bababa"></td>
<td>#BABABA</td>
<td width="30" height="30" bgcolor="#ba55d3"></td>
<td>#BA55D3</td>
<td width="30" height="30" bgcolor="#b9d3ee"></td>
<td>#B9D3EE</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#b8b8b8"></td>
<td>#B8B8B8</td>
<td width="30" height="30" bgcolor="#b8860b"></td>
<td>#B8860B</td>
<td width="30" height="30" bgcolor="#b7b7b7"></td>
<td>#B7B7B7</td>
<td width="30" height="30" bgcolor="#b5b5b5"></td>
<td>#B5B5B5</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#b4eeb4"></td>
<td>#B4EEB4</td>
<td width="30" height="30" bgcolor="#b4cdcd"></td>
<td>#B4CDCD</td>
<td width="30" height="30" bgcolor="#b452cd"></td>
<td>#B452CD</td>
<td width="30" height="30" bgcolor="#b3ee3a"></td>
<td>#B3EE3A</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#b3b3b3"></td>
<td>#B3B3B3</td>
<td width="30" height="30" bgcolor="#b2dfee"></td>
<td>#B2DFEE</td>
<td width="30" height="30" bgcolor="#b23aee"></td>
<td>#B23AEE</td>
<td width="30" height="30" bgcolor="#b22222"></td>
<td>#B22222</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#b0e2ff"></td>
<td>#B0E2FF</td>
<td width="30" height="30" bgcolor="#b0e0e6"></td>
<td>#B0E0E6</td>
<td width="30" height="30" bgcolor="#b0c4de"></td>
<td>#B0C4DE</td>
<td width="30" height="30" bgcolor="#b0b0b0"></td>
<td>#B0B0B0</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#b03060"></td>
<td>#B03060</td>
<td width="30" height="30" bgcolor="#aeeeee"></td>
<td>#AEEEEE</td>
<td width="30" height="30" bgcolor="#adff2f"></td>
<td>#ADFF2F</td>
<td width="30" height="30" bgcolor="#add8e6"></td>
<td>#ADD8E6</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#adadad"></td>
<td>#ADADAD</td>
<td width="30" height="30" bgcolor="#ababab"></td>
<td>#ABABAB</td>
<td width="30" height="30" bgcolor="#ab82ff"></td>
<td>#AB82FF</td>
<td width="30" height="30" bgcolor="#aaaaaa"></td>
<td>#AAAAAA</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#a9a9a9"></td>
<td>#A9A9A9</td>
<td width="30" height="30" bgcolor="#a8a8a8"></td>
<td>#A8A8A8</td>
<td width="30" height="30" bgcolor="#a6a6a6"></td>
<td>#A6A6A6</td>
<td width="30" height="30" bgcolor="#a52a2a"></td>
<td>#A52A2A</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#a4d3ee"></td>
<td>#A4D3EE</td>
<td width="30" height="30" bgcolor="#a3a3a3"></td>
<td>#A3A3A3</td>
<td width="30" height="30" bgcolor="#a2cd5a"></td>
<td>#A2CD5A</td>
<td width="30" height="30" bgcolor="#a2b5cd"></td>
<td>#A2B5CD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#a1a1a1"></td>
<td>#A1A1A1</td>
<td width="30" height="30" bgcolor="#a0522d"></td>
<td>#A0522D</td>
<td width="30" height="30" bgcolor="#a020f0"></td>
<td>#A020F0</td>
<td width="30" height="30" bgcolor="#9fb6cd"></td>
<td>#9FB6CD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#9f79ee"></td>
<td>#9F79EE</td>
<td width="30" height="30" bgcolor="#9e9e9e"></td>
<td>#9E9E9E</td>
<td width="30" height="30" bgcolor="#9c9c9c"></td>
<td>#9C9C9C</td>
<td width="30" height="30" bgcolor="#9bcd9b"></td>
<td>#9BCD9B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#9b30ff"></td>
<td>#9B30FF</td>
<td width="30" height="30" bgcolor="#9aff9a"></td>
<td>#9AFF9A</td>
<td width="30" height="30" bgcolor="#9acd32"></td>
<td>#9ACD32</td>
<td width="30" height="30" bgcolor="#9ac0cd"></td>
<td>#9AC0CD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#9a32cd"></td>
<td>#9A32CD</td>
<td width="30" height="30" bgcolor="#999999"></td>
<td>#999999</td>
<td width="30" height="30" bgcolor="#9932cc"></td>
<td>#9932CC</td>
<td width="30" height="30" bgcolor="#98fb98"></td>
<td>#98FB98</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#98f5ff"></td>
<td>#98F5FF</td>
<td width="30" height="30" bgcolor="#97ffff"></td>
<td>#97FFFF</td>
<td width="30" height="30" bgcolor="#96cdcd"></td>
<td>#96CDCD</td>
<td width="30" height="30" bgcolor="#969696"></td>
<td>#969696</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#949494"></td>
<td>#949494</td>
<td width="30" height="30" bgcolor="#9400d3"></td>
<td>#9400D3</td>
<td width="30" height="30" bgcolor="#9370db"></td>
<td>#9370DB</td>
<td width="30" height="30" bgcolor="#919191"></td>
<td>#919191</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#912cee"></td>
<td>#912CEE</td>
<td width="30" height="30" bgcolor="#90ee90"></td>
<td>#90EE90</td>
<td width="30" height="30" bgcolor="#8fbc8f"></td>
<td>#8FBC8F</td>
<td width="30" height="30" bgcolor="#8f8f8f"></td>
<td>#8F8F8F</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8ee5ee"></td>
<td>#8EE5EE</td>
<td width="30" height="30" bgcolor="#8e8e8e"></td>
<td>#8E8E8E</td>
<td width="30" height="30" bgcolor="#8e8e38"></td>
<td>#8E8E38</td>
<td width="30" height="30" bgcolor="#8e388e"></td>
<td>#8E388E</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8deeee"></td>
<td>#8DEEEE</td>
<td width="30" height="30" bgcolor="#8db6cd"></td>
<td>#8DB6CD</td>
<td width="30" height="30" bgcolor="#8c8c8c"></td>
<td>#8C8C8C</td>
<td width="30" height="30" bgcolor="#8b8b83"></td>
<td>#8B8B83</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b8b7a"></td>
<td>#8B8B7A</td>
<td width="30" height="30" bgcolor="#8b8b00"></td>
<td>#8B8B00</td>
<td width="30" height="30" bgcolor="#8b8989"></td>
<td>#8B8989</td>
<td width="30" height="30" bgcolor="#8b8970"></td>
<td>#8B8970</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b8878"></td>
<td>#8B8878</td>
<td width="30" height="30" bgcolor="#8b8682"></td>
<td>#8B8682</td>
<td width="30" height="30" bgcolor="#8b864e"></td>
<td>#8B864E</td>
<td width="30" height="30" bgcolor="#8b8386"></td>
<td>#8B8386</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b8378"></td>
<td>#8B8378</td>
<td width="30" height="30" bgcolor="#8b814c"></td>
<td>#8B814C</td>
<td width="30" height="30" bgcolor="#8b7e66"></td>
<td>#8B7E66</td>
<td width="30" height="30" bgcolor="#8b7d7b"></td>
<td>#8B7D7B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b7d6b"></td>
<td>#8B7D6B</td>
<td width="30" height="30" bgcolor="#8b7b8b"></td>
<td>#8B7B8B</td>
<td width="30" height="30" bgcolor="#8b795e"></td>
<td>#8B795E</td>
<td width="30" height="30" bgcolor="#8b7765"></td>
<td>#8B7765</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b7500"></td>
<td>#8B7500</td>
<td width="30" height="30" bgcolor="#8b7355"></td>
<td>#8B7355</td>
<td width="30" height="30" bgcolor="#8b6969"></td>
<td>#8B6969</td>
<td width="30" height="30" bgcolor="#8b6914"></td>
<td>#8B6914</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b668b"></td>
<td>#8B668B</td>
<td width="30" height="30" bgcolor="#8b6508"></td>
<td>#8B6508</td>
<td width="30" height="30" bgcolor="#8b636c"></td>
<td>#8B636C</td>
<td width="30" height="30" bgcolor="#8b5f65"></td>
<td>#8B5F65</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b5a2b"></td>
<td>#8B5A2B</td>
<td width="30" height="30" bgcolor="#8b5a00"></td>
<td>#8B5A00</td>
<td width="30" height="30" bgcolor="#8b5742"></td>
<td>#8B5742</td>
<td width="30" height="30" bgcolor="#8b4c39"></td>
<td>#8B4C39</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b4789"></td>
<td>#8B4789</td>
<td width="30" height="30" bgcolor="#8b475d"></td>
<td>#8B475D</td>
<td width="30" height="30" bgcolor="#8b4726"></td>
<td>#8B4726</td>
<td width="30" height="30" bgcolor="#8b4513"></td>
<td>#8B4513</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b4500"></td>
<td>#8B4500</td>
<td width="30" height="30" bgcolor="#8b3e2f"></td>
<td>#8B3E2F</td>
<td width="30" height="30" bgcolor="#8b3a62"></td>
<td>#8B3A62</td>
<td width="30" height="30" bgcolor="#8b3a3a"></td>
<td>#8B3A3A</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b3626"></td>
<td>#8B3626</td>
<td width="30" height="30" bgcolor="#8b2500"></td>
<td>#8B2500</td>
<td width="30" height="30" bgcolor="#8b2323"></td>
<td>#8B2323</td>
<td width="30" height="30" bgcolor="#8b2252"></td>
<td>#8B2252</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b1c62"></td>
<td>#8B1C62</td>
<td width="30" height="30" bgcolor="#8b1a1a"></td>
<td>#8B1A1A</td>
<td width="30" height="30" bgcolor="#8b0a50"></td>
<td>#8B0A50</td>
<td width="30" height="30" bgcolor="#8b008b"></td>
<td>#8B008B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#8b0000"></td>
<td>#8B0000</td>
<td width="30" height="30" bgcolor="#8a8a8a"></td>
<td>#8A8A8A</td>
<td width="30" height="30" bgcolor="#8a2be2"></td>
<td>#8A2BE2</td>
<td width="30" height="30" bgcolor="#8968cd"></td>
<td>#8968CD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#87ceff"></td>
<td>#87CEFF</td>
<td width="30" height="30" bgcolor="#87cefa"></td>
<td>#87CEFA</td>
<td width="30" height="30" bgcolor="#87ceeb"></td>
<td>#87CEEB</td>
<td width="30" height="30" bgcolor="#878787"></td>
<td>#878787</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#858585"></td>
<td>#858585</td>
<td width="30" height="30" bgcolor="#848484"></td>
<td>#848484</td>
<td width="30" height="30" bgcolor="#8470ff"></td>
<td>#8470FF</td>
<td width="30" height="30" bgcolor="#838b8b"></td>
<td>#838B8B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#838b83"></td>
<td>#838B83</td>
<td width="30" height="30" bgcolor="#836fff"></td>
<td>#836FFF</td>
<td width="30" height="30" bgcolor="#828282"></td>
<td>#828282</td>
<td width="30" height="30" bgcolor="#7fffd4"></td>
<td>#7FFFD4</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#7fff00"></td>
<td>#7FFF00</td>
<td width="30" height="30" bgcolor="#7f7f7f"></td>
<td>#7F7F7F</td>
<td width="30" height="30" bgcolor="#7ec0ee"></td>
<td>#7EC0EE</td>
<td width="30" height="30" bgcolor="#7d9ec0"></td>
<td>#7D9EC0</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#7d7d7d"></td>
<td>#7D7D7D</td>
<td width="30" height="30" bgcolor="#7d26cd"></td>
<td>#7D26CD</td>
<td width="30" height="30" bgcolor="#7cfc00"></td>
<td>#7CFC00</td>
<td width="30" height="30" bgcolor="#7ccd7c"></td>
<td>#7CCD7C</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#7b68ee"></td>
<td>#7B68EE</td>
<td width="30" height="30" bgcolor="#7ac5cd"></td>
<td>#7AC5CD</td>
<td width="30" height="30" bgcolor="#7a8b8b"></td>
<td>#7A8B8B</td>
<td width="30" height="30" bgcolor="#7a7a7a"></td>
<td>#7A7A7A</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#7a67ee"></td>
<td>#7A67EE</td>
<td width="30" height="30" bgcolor="#7a378b"></td>
<td>#7A378B</td>
<td width="30" height="30" bgcolor="#79cdcd"></td>
<td>#79CDCD</td>
<td width="30" height="30" bgcolor="#787878"></td>
<td>#787878</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#778899"></td>
<td>#778899</td>
<td width="30" height="30" bgcolor="#76eec6"></td>
<td>#76EEC6</td>
<td width="30" height="30" bgcolor="#76ee00"></td>
<td>#76EE00</td>
<td width="30" height="30" bgcolor="#757575"></td>
<td>#757575</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#737373"></td>
<td>#737373</td>
<td width="30" height="30" bgcolor="#71c671"></td>
<td>#71C671</td>
<td width="30" height="30" bgcolor="#7171c6"></td>
<td>#7171C6</td>
<td width="30" height="30" bgcolor="#708090"></td>
<td>#708090</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#707070"></td>
<td>#707070</td>
<td width="30" height="30" bgcolor="#6e8b3d"></td>
<td>#6E8B3D</td>
<td width="30" height="30" bgcolor="#6e7b8b"></td>
<td>#6E7B8B</td>
<td width="30" height="30" bgcolor="#6e6e6e"></td>
<td>#6E6E6E</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#6ca6cd"></td>
<td>#6CA6CD</td>
<td width="30" height="30" bgcolor="#6c7b8b"></td>
<td>#6C7B8B</td>
<td width="30" height="30" bgcolor="#6b8e23"></td>
<td>#6B8E23</td>
<td width="30" height="30" bgcolor="#6b6b6b"></td>
<td>#6B6B6B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#6a5acd"></td>
<td>#6A5ACD</td>
<td width="30" height="30" bgcolor="#698b69"></td>
<td>#698B69</td>
<td width="30" height="30" bgcolor="#698b22"></td>
<td>#698B22</td>
<td width="30" height="30" bgcolor="#696969"></td>
<td>#696969</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#6959cd"></td>
<td>#6959CD</td>
<td width="30" height="30" bgcolor="#68838b"></td>
<td>#68838B</td>
<td width="30" height="30" bgcolor="#68228b"></td>
<td>#68228B</td>
<td width="30" height="30" bgcolor="#66cdaa"></td>
<td>#66CDAA</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#66cd00"></td>
<td>#66CD00</td>
<td width="30" height="30" bgcolor="#668b8b"></td>
<td>#668B8B</td>
<td width="30" height="30" bgcolor="#666666"></td>
<td>#666666</td>
<td width="30" height="30" bgcolor="#6495ed"></td>
<td>#6495ED</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#63b8ff"></td>
<td>#63B8FF</td>
<td width="30" height="30" bgcolor="#636363"></td>
<td>#636363</td>
<td width="30" height="30" bgcolor="#616161"></td>
<td>#616161</td>
<td width="30" height="30" bgcolor="#607b8b"></td>
<td>#607B8B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#5f9ea0"></td>
<td>#5F9EA0</td>
<td width="30" height="30" bgcolor="#5e5e5e"></td>
<td>#5E5E5E</td>
<td width="30" height="30" bgcolor="#5d478b"></td>
<td>#5D478B</td>
<td width="30" height="30" bgcolor="#5cacee"></td>
<td>#5CACEE</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#5c5c5c"></td>
<td>#5C5C5C</td>
<td width="30" height="30" bgcolor="#5b5b5b"></td>
<td>#5B5B5B</td>
<td width="30" height="30" bgcolor="#595959"></td>
<td>#595959</td>
<td width="30" height="30" bgcolor="#575757"></td>
<td>#575757</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#556b2f"></td>
<td>#556B2F</td>
<td width="30" height="30" bgcolor="#555555"></td>
<td>#555555</td>
<td width="30" height="30" bgcolor="#551a8b"></td>
<td>#551A8B</td>
<td width="30" height="30" bgcolor="#54ff9f"></td>
<td>#54FF9F</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#548b54"></td>
<td>#548B54</td>
<td width="30" height="30" bgcolor="#545454"></td>
<td>#545454</td>
<td width="30" height="30" bgcolor="#53868b"></td>
<td>#53868B</td>
<td width="30" height="30" bgcolor="#528b8b"></td>
<td>#528B8B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#525252"></td>
<td>#525252</td>
<td width="30" height="30" bgcolor="#515151"></td>
<td>#515151</td>
<td width="30" height="30" bgcolor="#4f94cd"></td>
<td>#4F94CD</td>
<td width="30" height="30" bgcolor="#4f4f4f"></td>
<td>#4F4F4F</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#4eee94"></td>
<td>#4EEE94</td>
<td width="30" height="30" bgcolor="#4d4d4d"></td>
<td>#4D4D4D</td>
<td width="30" height="30" bgcolor="#4b0082"></td>
<td>#4B0082</td>
<td width="30" height="30" bgcolor="#4a708b"></td>
<td>#4A708B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#4a4a4a"></td>
<td>#4A4A4A</td>
<td width="30" height="30" bgcolor="#48d1cc"></td>
<td>#48D1CC</td>
<td width="30" height="30" bgcolor="#4876ff"></td>
<td>#4876FF</td>
<td width="30" height="30" bgcolor="#483d8b"></td>
<td>#483D8B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#474747"></td>
<td>#474747</td>
<td width="30" height="30" bgcolor="#473c8b"></td>
<td>#473C8B</td>
<td width="30" height="30" bgcolor="#4682b4"></td>
<td>#4682B4</td>
<td width="30" height="30" bgcolor="#458b74"></td>
<td>#458B74</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#458b00"></td>
<td>#458B00</td>
<td width="30" height="30" bgcolor="#454545"></td>
<td>#454545</td>
<td width="30" height="30" bgcolor="#43cd80"></td>
<td>#43CD80</td>
<td width="30" height="30" bgcolor="#436eee"></td>
<td>#436EEE</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#424242"></td>
<td>#424242</td>
<td width="30" height="30" bgcolor="#4169e1"></td>
<td>#4169E1</td>
<td width="30" height="30" bgcolor="#40e0d0"></td>
<td>#40E0D0</td>
<td width="30" height="30" bgcolor="#404040"></td>
<td>#404040</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#3d3d3d"></td>
<td>#3D3D3D</td>
<td width="30" height="30" bgcolor="#3cb371"></td>
<td>#3CB371</td>
<td width="30" height="30" bgcolor="#3b3b3b"></td>
<td>#3B3B3B</td>
<td width="30" height="30" bgcolor="#3a5fcd"></td>
<td>#3A5FCD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#388e8e"></td>
<td>#388E8E</td>
<td width="30" height="30" bgcolor="#383838"></td>
<td>#383838</td>
<td width="30" height="30" bgcolor="#36648b"></td>
<td>#36648B</td>
<td width="30" height="30" bgcolor="#363636"></td>
<td>#363636</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#333333"></td>
<td>#333333</td>
<td width="30" height="30" bgcolor="#32cd32"></td>
<td>#32CD32</td>
<td width="30" height="30" bgcolor="#303030"></td>
<td>#303030</td>
<td width="30" height="30" bgcolor="#2f4f4f"></td>
<td>#2F4F4F</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#2e8b57"></td>
<td>#2E8B57</td>
<td width="30" height="30" bgcolor="#2e2e2e"></td>
<td>#2E2E2E</td>
<td width="30" height="30" bgcolor="#2b2b2b"></td>
<td>#2B2B2B</td>
<td width="30" height="30" bgcolor="#292929"></td>
<td>#292929</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#282828"></td>
<td>#282828</td>
<td width="30" height="30" bgcolor="#27408b"></td>
<td>#27408B</td>
<td width="30" height="30" bgcolor="#262626"></td>
<td>#262626</td>
<td width="30" height="30" bgcolor="#242424"></td>
<td>#242424</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#228b22"></td>
<td>#228B22</td>
<td width="30" height="30" bgcolor="#218868"></td>
<td>#218868</td>
<td width="30" height="30" bgcolor="#212121"></td>
<td>#212121</td>
<td width="30" height="30" bgcolor="#20b2aa"></td>
<td>#20B2AA</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#1f1f1f"></td>
<td>#1F1F1F</td>
<td width="30" height="30" bgcolor="#1e90ff"></td>
<td>#1E90FF</td>
<td width="30" height="30" bgcolor="#1e1e1e"></td>
<td>#1E1E1E</td>
<td width="30" height="30" bgcolor="#1c86ee"></td>
<td>#1C86EE</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#1c1c1c"></td>
<td>#1C1C1C</td>
<td width="30" height="30" bgcolor="#1a1a1a"></td>
<td>#1A1A1A</td>
<td width="30" height="30" bgcolor="#191970"></td>
<td>#191970</td>
<td width="30" height="30" bgcolor="#1874cd"></td>
<td>#1874CD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#171717"></td>
<td>#171717</td>
<td width="30" height="30" bgcolor="#141414"></td>
<td>#141414</td>
<td width="30" height="30" bgcolor="#121212"></td>
<td>#121212</td>
<td width="30" height="30" bgcolor="#104e8b"></td>
<td>#104E8B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#0f0f0f"></td>
<td>#0F0F0F</td>
<td width="30" height="30" bgcolor="#0d0d0d"></td>
<td>#0D0D0D</td>
<td width="30" height="30" bgcolor="#0a0a0a"></td>
<td>#0A0A0A</td>
<td width="30" height="30" bgcolor="#080808"></td>
<td>#080808</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#050505"></td>
<td>#050505</td>
<td width="30" height="30" bgcolor="#030303"></td>
<td>#030303</td>
<td width="30" height="30" bgcolor="#00ffff"></td>
<td>#00FFFF</td>
<td width="30" height="30" bgcolor="#00ff7f"></td>
<td>#00FF7F</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#00ff00"></td>
<td>#00FF00</td>
<td width="30" height="30" bgcolor="#00fa9a"></td>
<td>#00FA9A</td>
<td width="30" height="30" bgcolor="#00f5ff"></td>
<td>#00F5FF</td>
<td width="30" height="30" bgcolor="#00eeee"></td>
<td>#00EEEE</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#00ee76"></td>
<td>#00EE76</td>
<td width="30" height="30" bgcolor="#00ee00"></td>
<td>#00EE00</td>
<td width="30" height="30" bgcolor="#00e5ee"></td>
<td>#00E5EE</td>
<td width="30" height="30" bgcolor="#00ced1"></td>
<td>#00CED1</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#00cdcd"></td>
<td>#00CDCD</td>
<td width="30" height="30" bgcolor="#00cd66"></td>
<td>#00CD66</td>
<td width="30" height="30" bgcolor="#00cd00"></td>
<td>#00CD00</td>
<td width="30" height="30" bgcolor="#00c5cd"></td>
<td>#00C5CD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#00bfff"></td>
<td>#00BFFF</td>
<td width="30" height="30" bgcolor="#00b2ee"></td>
<td>#00B2EE</td>
<td width="30" height="30" bgcolor="#009acd"></td>
<td>#009ACD</td>
<td width="30" height="30" bgcolor="#008b8b"></td>
<td>#008B8B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#008b45"></td>
<td>#008B45</td>
<td width="30" height="30" bgcolor="#008b00"></td>
<td>#008B00</td>
<td width="30" height="30" bgcolor="#00868b"></td>
<td>#00868B</td>
<td width="30" height="30" bgcolor="#00688b"></td>
<td>#00688B</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#006400"></td>
<td>#006400</td>
<td width="30" height="30" bgcolor="#0000ff"></td>
<td>#0000FF</td>
<td width="30" height="30" bgcolor="#0000ee"></td>
<td>#0000EE</td>
<td width="30" height="30" bgcolor="#0000cd"></td>
<td>#0000CD</td>
</tr>
<tr>
<td width="30" height="30" bgcolor="#0000aa"></td>
<td>#0000AA</td>
<td width="30" height="30" bgcolor="#00008b"></td>
<td>#00008B</td>
<td width="30" height="30" bgcolor="#000080"></td>
<td>#000080</td>
<td width="30" height="30" bgcolor="#000000"></td>
<td>#000000</td>
</tr>
</tbody>
</table>
</div>
<p><img src="http://counter.yesky.com/servlet/counter.counter?CID=12&amp;AID=-1&amp;refer=&amp;cur=http%3A//www.114la.com/other/rgb.htm" border="0" alt="" width="0" height="0" /></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/280/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP程序员最常犯的11个MySQL错误(转)</title>
		<link>http://www.hety.net/archives/277</link>
		<comments>http://www.hety.net/archives/277#comments</comments>
		<pubDate>Fri, 01 Jul 2011 09:44:00 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Technology news]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=277</guid>
		<description><![CDATA[对于大多数web应用来说，数据库都是一个十分基础性的部分。如果你在使用PHP，那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子。 对于很多新手们来说，使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是，构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的11个MySQL相关的错误（有些同样也反映在其他语言/数据库的使用上）。。。 1.使用MyISAM而不是InnoDB MySQL有很多数据库引擎，但是你最可能碰到的就是MyISAM和InnoDB。 MySQL默认使用的是MyISAM。但是，很多情况下这都是一个很糟糕的选择，除非你在创建一个非常简单抑或实验性的数据库。外键约束或者事务处理对于数据完整性是非常重要的，但MyISAM都不支持这些。另外，当有一条记录在插入或者更新时，整个数据表都被锁定了，当使用量增加的时候这会产生非常差的运行效率。 结论很简单：使用InnoDB。 2.使用PHP的mysql函数 PHP自产生之日就提供了MySQL库函数（or near as makes no difference）。很多应用仍然在使用类似mysql_connect、mysql_query、mysql_fetch_assoc等的函数，尽管PHP手册上说： 如果你在使用MySQL v4.1.3或者更新版本，强烈推荐使用您使用mysqli扩展。 mysqli（MySQL的加强版扩展）有以下几个优点： 可选的面向对象接口 prepared表达式，这有利于阻止SQL注入攻击，还能提高性能 支持更多的表达式和事务处理 另外，如果你想支持多种数据库系统，你还可以考虑PDO。 3.没有处理用户输入 这或者可以这样说#1：永远不要相信用户的输入。用服务器端的PHP验证每个字符串，不要寄希望与JavaScript。最简单的SQL注入攻击会利用如下的代码： $username = $_POST["name"];   $password = $_POST["password"];   $sql = “SELECT userid FROM usertable WHERE username=&#8217;$username&#8217; AND password=&#8217;$password&#8217;;”;   // run query&#8230; 只要在username字段输入“admin&#8217;;&#8211;”，这样就会被黑到，相应的SQL语句如下： SELECT userid FROM usertable WHERE username=&#8217;admin&#8217;; 狡猾的黑客可以以admin登录，他们不需要知道密码，因为密码段被注释掉了。 4.没有使用UTF-8 美国、英国和澳大利亚的我们很少考虑除英语之外的其他语言。我们很得意地完成了自己的“杰作”却发现它们并不能在其他地方正常运行。 UTF-8解决了很多国际化问题。虽然在PHP v6.0之前它还不能很好地被支持，但这并不影响你把MySQL字符集设为UTF-8。 5.相对于SQL，偏爱PHP 如果你接触MySQL不久，那么你会偏向于使用你已经掌握的语言来解决问题，这样会导致写出一些冗余、低效率的代码。比如，你不会使用MySQL自带的AVG()函数，却会先对记录集中的值求和然后用PHP循环来计算平均值。 [...]]]></description>
			<content:encoded><![CDATA[<p>对于大多数web应用来说，数据库都是一个十分基础性的部分。如果你在使用PHP，那么你很可能也在使用MySQL—LAMP系列中举足轻重的一份子。</p>
<p>对于很多新手们来说，使用PHP可以在短短几个小时之内轻松地写出具有特定功能的代码。但是，构建一个稳定可靠的数据库却需要花上一些时日和相关技能。下面列举了我曾经犯过的最严重的11个MySQL相关的错误（有些同样也反映在其他语言/数据库的使用上）。。。<span id="more-277"></span></p>
<p><strong>1.使用MyISAM而不是InnoDB</strong></p>
<p>MySQL有很多数据库引擎，但是你最可能碰到的就是MyISAM和InnoDB。</p>
<p>MySQL默认使用的是MyISAM。但是，很多情况下这都是一个很糟糕的选择，除非你在创建一个非常简单抑或实验性的数据库。外键约束或者事务处理对于数据完整性是非常重要的，但MyISAM都不支持这些。另外，当有一条记录在插入或者更新时，整个数据表都被锁定了，当使用量增加的时候这会产生非常差的运行效率。</p>
<p>结论很简单：使用InnoDB。</p>
<p><strong>2.使用PHP的mysql函数</strong></p>
<p>PHP自产生之日就提供了MySQL库函数（or near as makes no difference）。很多应用仍然在使用类似mysql_connect、mysql_query、mysql_fetch_assoc等的函数，尽管PHP手册上说：</p>
<p>如果你在使用MySQL v4.1.3或者更新版本，强烈推荐使用您使用mysqli扩展。</p>
<p>mysqli（MySQL的加强版扩展）有以下几个优点：</p>
<p>可选的面向对象接口</p>
<p>prepared表达式，这有利于阻止SQL注入攻击，还能提高性能</p>
<p>支持更多的表达式和事务处理</p>
<p>另外，如果你想支持多种数据库系统，你还可以考虑PDO。</p>
<p><strong>3.没有处理用户输入</strong></p>
<p>这或者可以这样说#1：永远不要相信用户的输入。用服务器端的PHP验证每个字符串，不要寄希望与JavaScript。最简单的SQL注入攻击会利用如下的代码：</p>
<table border="0" cellspacing="0" cellpadding="6" width="95%" align="center">
<tbody>
<tr>
<td bgcolor="#fdfddf"><span style="color: #ff0000;"><span style="color: #000000;">$username = $_POST["name"];   $password = $_POST["password"];   $sql = “SELECT userid FROM usertable WHERE username=&#8217;$username&#8217; AND password=&#8217;$password&#8217;;”;   // run query&#8230; </span> </span></td>
</tr>
</tbody>
</table>
<p>只要在username字段输入“admin&#8217;;&#8211;”，这样就会被黑到，相应的SQL语句如下：</p>
<table border="0" cellspacing="0" cellpadding="6" width="95%" align="center">
<tbody>
<tr>
<td bgcolor="#fdfddf"><span style="color: #ff0000;"><span style="color: #000000;">SELECT userid FROM usertable WHERE username=&#8217;admin&#8217;;</span> </span></td>
</tr>
</tbody>
</table>
<p>狡猾的黑客可以以admin登录，他们不需要知道密码，因为密码段被注释掉了。</p>
<p><strong>4.没有使用UTF-8</strong></p>
<p>美国、英国和澳大利亚的我们很少考虑除英语之外的其他语言。我们很得意地完成了自己的“杰作”却发现它们并不能在其他地方正常运行。</p>
<p>UTF-8解决了很多国际化问题。虽然在PHP v6.0之前它还不能很好地被支持，但这并不影响你把MySQL字符集设为UTF-8。</p>
<p><strong>5.相对于SQL，偏爱PHP</strong></p>
<p>如果你接触MySQL不久，那么你会偏向于使用你已经掌握的语言来解决问题，这样会导致写出一些冗余、低效率的代码。比如，你不会使用MySQL自带的AVG()函数，却会先对记录集中的值求和然后用PHP循环来计算平均值。</p>
<p>此外，请注意PHP循环中的SQL查询。通常来说，执行一个查询比在结果中迭代更有效率。</p>
<p>所以，在分析数据的时候请利用数据库系统的优势，懂一些SQL的知识将大有裨益。</p>
<p><strong>6.没有优化数据库查询</strong></p>
<p>99%的PHP性能问题都是由数据库引起的，仅仅一个糟糕的SQL查询就能让你的web应用彻底瘫痪。MySQL的EXPLAIN statement、Query Profiler，还有很多其他的工具将会帮助你找出这些万恶的SELECT。</p>
<p><strong>7.不能正确使用数据类型</strong></p>
<p>MySQL提供了诸如numeric、string和date等的数据类型。如果你想存储一个时间，那么使用DATE或者DATETIME类型。如果这个时候用INTEGER或者STRING类型的话，那么将会使得SQL查询非常复杂，前提是你能使用INTEGER或者STRING来定义那个类型。</p>
<p>很多人倾向于擅自自定义一些数据的格式，比如，使用string来存储序列化的PHP对象。这样的话数据库管理起来可能会变得简单些，但会使得MySQL成为一个糟糕的数据存储而且之后很可能会引起故障。</p>
<p><strong>8.在查询中使用*</strong></p>
<p>永远不要使用*来返回一个数据表所有列的数据。这是懒惰：你应该提取你需要的数据。就算你需要所有字段，你的数据表也不可避免的会产生变化。</p>
<p><strong>9.不使用索引或者过度使用索引</strong></p>
<p>一般性原则是这样的：select语句中的任何一个where子句表示的字段都应该使用索引。</p>
<p>举个例子，假设我们有一个user表，包括numeric ID（主键）和email address。登录的时候，MySQL必须以一个email为依据查找正确的ID。如果使用了索引的话（这里指email），那么MySQL就能够使用更快的搜索算法来定位email，甚至可以说是即时实现。否则，MySQL就只能顺序地检查每一条记录直到找到正确的email address。</p>
<p>有的人会在每个字段上都添加索引，遗憾的是，执行了INSERT或者UPDATE之后这些索引都需要重新生成，这样就会影响性能。所以，只在需要的时候添加索引。</p>
<p><strong>10.忘记备份！</strong></p>
<p>虽然比较罕见，但是数据库还是有崩溃的危险。硬盘有可能损坏，服务器有可能崩溃，web主机提供商有可能会破产！丢失MySQL数据将会是灾难性的，所以请确保你已经使用了自动备份或者已经复制到位。</p>
<p><strong>11.Bonus mistake-不考虑使用其他数据库</strong></p>
<p>对于PHP开发人员来说，MySQL可能是使用最广泛的数据库系统，但并不是唯一的选择。PostgreSQL和Firebird是最强有力的竞争者：这个两者都是开源的，而且都没有被公司收购。微软提供了sql server Express，甲骨文提供了10g Express，这两者都是企业级数据库的免费版本。有时候，对于一个较小的web应用或者嵌入式应用，SQLite也不失为一个可行的替代方案。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/277/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>利用zend创建(生成)WSDL文件(PHP SOAP)</title>
		<link>http://www.hety.net/archives/273</link>
		<comments>http://www.hety.net/archives/273#comments</comments>
		<pubDate>Wed, 29 Jun 2011 02:59:22 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=273</guid>
		<description><![CDATA[利用zend创建(生成)WSDL文件(PHP SOAP) 听说Zend XmlRpc的WSDL的编写非常容易，有空试试得，下面介绍一下soap的WSDL的编写！ 玩SOAP，最麻烦的莫过于WSDL的编写，我一直认为那玩意儿不是人写的，今天我才发现，的确那玩意儿是不需要人写的 我们先定义一个类（文件 sum.php)： class Sum { /** * 求和 * * @param float $x * @param float $y * @return float */ public function add($x, $y) { return $x + $y; } } 创建WSDL：这项是最麻烦的过程，但是，利用Zend Studio，一行xml也不用写，就能轻松搞定 步骤： Tools(工具) ==&#62; WSDL Generator ==&#62; Configration name : fdxq520; WSDL file name: SUM ==&#62;NEXT(下一步)　==&#62; 点击 [...]]]></description>
			<content:encoded><![CDATA[<div id="appShareTitle">利用zend创建(生成)WSDL文件(PHP SOAP)</div>
<div id="app-share-content">
<div>
<p>听说Zend XmlRpc的WSDL的编写非常容易，有空试试得，下面介绍一下soap的WSDL的编写！</p>
<p>玩SOAP，最麻烦的莫过于WSDL的编写，我一直认为那玩意儿不是人写的，今天我才发现，的确那玩意儿是不需要人写的</p>
<p>我们先定义一个类（文件 sum.php)：</p>
<p><span id="more-273"></span></p>
<p><span style="font-family: 新宋体;">class </span><span style="font-family: 新宋体;"><span>Sum</span><br />
</span><span style="font-family: 新宋体;">{<br />
</span><span style="font-family: 新宋体;">/**<br />
* 求和<br />
*<br />
* @param float $x<br />
* @param float $y<br />
* @return float<br />
*/<br />
public function add($x, $y</span><span style="font-family: 新宋体;">)<br />
{<br />
return $x + $y</span><span style="font-family: 新宋体;">;<br />
}<br />
}</span></p>
<p>创建WSDL：这项是最麻烦的过程，但是，利用Zend Studio，一行xml也不用写，就能轻松搞定</p>
<p>步骤：</p>
<p>Tools(工具) ==&gt; WSDL Generator ==&gt; Configration name : fdxq520; WSDL file name: SUM ==&gt;NEXT(下一步)　==&gt; 点击 +   ==&gt; 选择上面的创建的sum.php ==&gt; 这时候会看到一个 classes   : URL Location的映射,保留 Sum 类前面的勾，并将其url 设置为 SOAP Server的url：<a href="http://localhost/server.php">http://localhost/server.php</a> ==&gt;点击Finish(完成)，ZDE就会创建一个非常完美的WSDL</p>
<p>拷贝那个SUM.wsdl文件（默认在我的文档中）到apache目录下(localhost)，</p>
<p>创建 SOAP Server: server.php</p>
<p><span style="font-family: 新宋体;">&lt;?php<br />
require &#8216;./sum.php&#8217;</span><span style="font-family: 新宋体;">;</span></p>
<p>$server = new SoapServer(&#8216;./SUM.wsdl&#8217;<span style="font-family: 新宋体;">);<br />
$server-&gt;setClass(&#8216;Sum&#8217;</span><span style="font-family: 新宋体;">);<br />
$server-&gt;handle</span><span style="font-family: 新宋体;">();<br />
?&gt;</span></p>
<p><span style="font-family: 新宋体;">创建SOAP客户端(client.php)</span></p>
<p><span style="font-family: 新宋体;">&lt;?php</span></p>
<p>$soap = new SoapClient(&#8216;./SUM.wsdl&#8217;<span style="font-family: 新宋体;">);<br />
echo $soap-&gt;add(3.1, 4.2);</span></p>
<p><span style="font-family: 新宋体;">运行输出 7.3，OK！</span></p>
</div>
<div>ps:需要新建项目,不然会报错</div>
</div>
<div id="appShareUrl">来自: <a href="http://hi.baidu.com/zr443/blog/item/cfd6132a3e6fa29c023bf63b.html" target="_blank">http://hi.baidu.com/zr443/blog/item/cfd6132a3e6fa29c023bf63b.html</a></div>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/273/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>常用正则表达式-收藏</title>
		<link>http://www.hety.net/archives/269</link>
		<comments>http://www.hety.net/archives/269#comments</comments>
		<pubDate>Tue, 21 Jun 2011 07:01:44 +0000</pubDate>
		<dc:creator>hety</dc:creator>
				<category><![CDATA[正则表达式]]></category>

		<guid isPermaLink="false">http://www.hety.net/?p=269</guid>
		<description><![CDATA[最基本也是最常用的一些表达式 : 匹配中文字符的正则表达式： [\u4e00-\u9fa5] 评注：匹配中文还真是个头疼的事，有了这个表达式就好办了 匹配双字节字符(包括汉字在内)：[^\x00-\xff] 评注：可以用来计算字符串的长度（一个双字节字符长度计2，ASCII字符计1） 匹配空白行的正则表达式：\n\s*\r 评注：可以用来删除空白行 匹配HTML标记的正则表达式：&#60;(\S*?)[^&#62;]*&#62;.*?&#60;/\1&#62;&#124;&#60;.*? /&#62; 评注：网上流传的版本太糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力 匹配首尾空白字符的正则表达式：^\s*&#124;\s*$ 评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表达式 匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)* 评注：表单验证时很实用 匹配网址URL的正则表达式：[a-zA-z]+://[^\s]* 评注：网上流传的版本功能很有限，上面这个基本可以满足需求 匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$ 评注：表单验证时很实用 匹配国内电话号码：\d{3}-\d{8}&#124;\d{4}-\d{7} 评注：匹配形式如 0511-4405222 或 021-87888822 匹配腾讯QQ号：[1-9][0-9]{4,} 评注：腾讯QQ号从10000开始 匹配中国邮政编码：[1-9]\d{5}(?!\d) 评注：中国邮政编码为6位数字 匹配身份证：\d{15}&#124;\d{18} 评注：中国的身份证为15位或18位 匹配ip地址：\d+\.\d+\.\d+\.\d+ 评注：提取ip地址时有用 匹配特定数字： ^[1-9]\d*$　 　 //匹配正整数 ^-[1-9]\d*$ 　 //匹配负整数 ^-?[1-9]\d*$　　 //匹配整数 ^[1-9]\d*&#124;0$　 //匹配非负整数（正整数 + 0） ^-[1-9]\d*&#124;0$　　 //匹配非正整数（负整数 + 0） ^[1-9]\d*\.\d*&#124;0\.\d*[1-9]\d*$　　 //匹配正浮点数 ^-([1-9]\d*\.\d*&#124;0\.\d*[1-9]\d*)$　 //匹配负浮点数 ^-?([1-9]\d*\.\d*&#124;0\.\d*[1-9]\d*&#124;0?\.0+&#124;0)$　 [...]]]></description>
			<content:encoded><![CDATA[<div id="_mcePaste">最基本也是最常用的一些表达式 :</div>
<div id="_mcePaste">匹配中文字符的正则表达式： [\u4e00-\u9fa5]</div>
<div id="_mcePaste">评注：匹配中文还真是个头疼的事，有了这个表达式就好办了</div>
<div id="_mcePaste">匹配双字节字符(包括汉字在内)：[^\x00-\xff]</div>
<div id="_mcePaste">评注：可以用来计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</div>
<div id="_mcePaste">匹配空白行的正则表达式：\n\s*\r</div>
<div id="_mcePaste">评注：可以用来删除空白行</div>
<div><span id="more-269"></span></div>
<div id="_mcePaste">匹配HTML标记的正则表达式：&lt;(\S*?)[^&gt;]*&gt;.*?&lt;/\1&gt;|&lt;.*? /&gt;</div>
<div id="_mcePaste">评注：网上流传的版本太糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力</div>
<div id="_mcePaste">匹配首尾空白字符的正则表达式：^\s*|\s*$</div>
<div id="_mcePaste">评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表达式</div>
<div id="_mcePaste">匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</div>
<div id="_mcePaste">评注：表单验证时很实用</div>
<div id="_mcePaste">匹配网址URL的正则表达式：[a-zA-z]+://[^\s]*</div>
<div id="_mcePaste">评注：网上流传的版本功能很有限，上面这个基本可以满足需求</div>
<div id="_mcePaste">匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$</div>
<div id="_mcePaste">评注：表单验证时很实用</div>
<div id="_mcePaste">匹配国内电话号码：\d{3}-\d{8}|\d{4}-\d{7}</div>
<div id="_mcePaste">评注：匹配形式如 0511-4405222 或 021-87888822</div>
<div id="_mcePaste">匹配腾讯QQ号：[1-9][0-9]{4,}</div>
<div id="_mcePaste">评注：腾讯QQ号从10000开始</div>
<div id="_mcePaste">匹配中国邮政编码：[1-9]\d{5}(?!\d)</div>
<div id="_mcePaste">评注：中国邮政编码为6位数字</div>
<div id="_mcePaste">匹配身份证：\d{15}|\d{18}</div>
<div id="_mcePaste">评注：中国的身份证为15位或18位</div>
<div id="_mcePaste">匹配ip地址：\d+\.\d+\.\d+\.\d+</div>
<div id="_mcePaste">评注：提取ip地址时有用</div>
<div id="_mcePaste">匹配特定数字：</div>
<div id="_mcePaste">^[1-9]\d*$　 　 //匹配正整数</div>
<div id="_mcePaste">^-[1-9]\d*$ 　 //匹配负整数</div>
<div id="_mcePaste">^-?[1-9]\d*$　　 //匹配整数</div>
<div id="_mcePaste">^[1-9]\d*|0$　 //匹配非负整数（正整数 + 0）</div>
<div id="_mcePaste">^-[1-9]\d*|0$　　 //匹配非正整数（负整数 + 0）</div>
<div id="_mcePaste">^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$　　 //匹配正浮点数</div>
<div id="_mcePaste">^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$　 //匹配负浮点数</div>
<div id="_mcePaste">^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$　 //匹配浮点数</div>
<div id="_mcePaste">^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$　　 //匹配非负浮点数（正浮点数 + 0）</div>
<div id="_mcePaste">^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$　　//匹配非正浮点数（负浮点数 + 0）</div>
<div id="_mcePaste">评注：处理大量数据时有用，具体应用时注意修正</div>
<div id="_mcePaste">匹配特定字符串：</div>
<div id="_mcePaste">^[A-Za-z]+$　　//匹配由26个英文字母组成的字符串</div>
<div id="_mcePaste">^[A-Z]+$　　//匹配由26个英文字母的大写组成的字符串</div>
<div id="_mcePaste">^[a-z]+$　　//匹配由26个英文字母的小写组成的字符串</div>
<div id="_mcePaste">^[A-Za-z0-9]+$　　//匹配由数字和26个英文字母组成的字符串</div>
<div id="_mcePaste">^\w+$　　//匹配由数字、26个英文字母或者下划线组成的字符串</div>
<div id="_mcePaste">评注：最基本也是最常用的一些表达式</div>
<div id="_mcePaste">//</div>
<div id="_mcePaste">正则表达式用于字符串处理，表单验证等场合，实用高效，但用到时总是不太把握，以致往往要上网查一番。我将一些常用的表达式收藏在这里，作备忘之用。本贴随时会更新。</div>
<div id="_mcePaste">1、非负整数：^\d+$</div>
<div id="_mcePaste">2、正整数：^[0-9]*[1-9][0-9]*$</div>
<div id="_mcePaste">3、非正整数：^((-\d+)|(0+))$</div>
<div id="_mcePaste">4、负整数：^-[0-9]*[1-9][0-9]*$</div>
<div id="_mcePaste">5、整数：^-?\d+$</div>
<div id="_mcePaste">6、非负浮点数：^\d+(\.\d+)?$</div>
<div id="_mcePaste">7、正浮点数：^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9 ]+)|([0-9]*[1-9][0-9]*))$</div>
<div id="_mcePaste">8、非正浮点数：^((-\d+\.\d+)?)|(0+(\.0+)?))$</div>
<div id="_mcePaste">9、负浮点数：^(-((正浮点数正则式)))$</div>
<div id="_mcePaste">10、英文字符串：^[A-Za-z]+$</div>
<div id="_mcePaste">11、英文大写串：^[A-Z]+$</div>
<div id="_mcePaste">12、英文小写串：^[a-z]+$</div>
<div id="_mcePaste">13、英文字符数字串：^[A-Za-z0-9]+$</div>
<div id="_mcePaste">14、英数字加下划线串：^\w+$</div>
<div id="_mcePaste">15、E-mail地址：^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$</div>
<div id="_mcePaste">16、URL：^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$</div>
<div id="_mcePaste">或：^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\&#8217;:+!]*([^&lt;&gt;\"\"])*$</div>
<div id="_mcePaste">17、邮政编码：^[1-9]\d{5}$</div>
<div id="_mcePaste">18、中文：^[\u0391-\uFFE5]+$</div>
<div id="_mcePaste">19、电话号码：^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$</div>
<div id="_mcePaste">20、手机号码：^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$</div>
<div id="_mcePaste">21、双字节字符(包括汉字在内)：^\x00-\xff</div>
<div id="_mcePaste">22、匹配首尾空格：(^\s*)|(\s*$)（像vbscript那样的trim函数）</div>
<div id="_mcePaste">23、匹配HTML标记：&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;</div>
<div id="_mcePaste">24、匹配空行：\n[\s| ]*\r</div>
<div id="_mcePaste">25、提取信息中的网络链接：(h|H)(r|R)(e|E)(f|F)  *=  *(&#8216;|”)?(\w|\\|\/|\.)+(&#8216;|”|  *|&gt;)?</div>
<div id="_mcePaste">26、提取信息中的邮件地址：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*</div>
<div id="_mcePaste">27、提取信息中的图片链接：(s|S)(r|R)(c|C)  *=  *(&#8216;|”)?(\w|\\|\/|\.)+(&#8216;|”|  *|&gt;)?</div>
<div id="_mcePaste">28、提取信息中的IP地址：(\d+)\.(\d+)\.(\d+)\.(\d+)</div>
<div id="_mcePaste">29、提取信息中的中国手机号码：(86)*0*13\d{9}</div>
<div id="_mcePaste">30、提取信息中的中国固定电话号码：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}</div>
<div id="_mcePaste">31、提取信息中的中国电话号码（包括移动和固定电话）：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}</div>
<div id="_mcePaste">32、提取信息中的中国邮政编码：[1-9]{1}(\d+){5}</div>
<div id="_mcePaste">33、提取信息中的浮点数（即小数）：(-?\d*)\.?\d+</div>
<div id="_mcePaste">34、提取信息中的任何数字 ：(-?\d*)(\.\d+)?</div>
<div id="_mcePaste">35、IP：(\d+)\.(\d+)\.(\d+)\.(\d+)</div>
<div id="_mcePaste">36、电话区号：/^0\d{2,3}$/</div>
<div id="_mcePaste">37、腾讯QQ号：^[1-9]*[1-9][0-9]*$</div>
<div id="_mcePaste">38、帐号(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$</div>
<div id="_mcePaste">匹配中文字符的正则表达式： [\u4e00-\u9fa5]</div>
<div id="_mcePaste">匹配双字节字符(包括汉字在内)：[^\x00-\xff]</div>
<div id="_mcePaste">应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）</div>
<div id="_mcePaste">String.prototype.len=function (){return this.replace([^\x00-\xff]/g,”aa”).length;}</div>
<div id="_mcePaste">匹配空行的正则表达式：\n[\s| ]*\r</div>
<div id="_mcePaste">匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/</div>
<div id="_mcePaste">匹配首尾空格的正则表达式：(^\s*)|(\s*$)</div>
<p>最基本也是最常用的一些表达式 :<br />
匹配中文字符的正则表达式： [\u4e00-\u9fa5]评注：匹配中文还真是个头疼的事，有了这个表达式就好办了<br />
匹配双字节字符(包括汉字在内)：[^\x00-\xff]评注：可以用来计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）<br />
匹配空白行的正则表达式：\n\s*\r评注：可以用来删除空白行<br />
匹配HTML标记的正则表达式：&lt;(\S*?)[^&gt;]*&gt;.*?&lt;/\1&gt;|&lt;.*? /&gt;评注：网上流传的版本太糟糕，上面这个也仅仅能匹配部分，对于复杂的嵌套标记依旧无能为力<br />
匹配首尾空白字符的正则表达式：^\s*|\s*$评注：可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等)，非常有用的表达式<br />
匹配Email地址的正则表达式：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*评注：表单验证时很实用<br />
匹配网址URL的正则表达式：[a-zA-z]+://[^\s]*评注：网上流传的版本功能很有限，上面这个基本可以满足需求<br />
匹配帐号是否合法(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$评注：表单验证时很实用<br />
匹配国内电话号码：\d{3}-\d{8}|\d{4}-\d{7}评注：匹配形式如 0511-4405222 或 021-87888822<br />
匹配腾讯QQ号：[1-9][0-9]{4,}评注：腾讯QQ号从10000开始<br />
匹配中国邮政编码：[1-9]\d{5}(?!\d)评注：中国邮政编码为6位数字<br />
匹配身份证：\d{15}|\d{18}评注：中国的身份证为15位或18位<br />
匹配ip地址：\d+\.\d+\.\d+\.\d+评注：提取ip地址时有用<br />
匹配特定数字：^[1-9]\d*$　 　 //匹配正整数^-[1-9]\d*$ 　 //匹配负整数^-?[1-9]\d*$　　 //匹配整数^[1-9]\d*|0$　 //匹配非负整数（正整数 + 0）^-[1-9]\d*|0$　　 //匹配非正整数（负整数 + 0）^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$　　 //匹配正浮点数^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$　 //匹配负浮点数^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$　 //匹配浮点数^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$　　 //匹配非负浮点数（正浮点数 + 0）^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$　　//匹配非正浮点数（负浮点数 + 0）评注：处理大量数据时有用，具体应用时注意修正<br />
匹配特定字符串：^[A-Za-z]+$　　//匹配由26个英文字母组成的字符串^[A-Z]+$　　//匹配由26个英文字母的大写组成的字符串^[a-z]+$　　//匹配由26个英文字母的小写组成的字符串^[A-Za-z0-9]+$　　//匹配由数字和26个英文字母组成的字符串^\w+$　　//匹配由数字、26个英文字母或者下划线组成的字符串评注：最基本也是最常用的一些表达式<br />
//<br />
正则表达式用于字符串处理，表单验证等场合，实用高效，但用到时总是不太把握，以致往往要上网查一番。我将一些常用的表达式收藏在这里，作备忘之用。本贴随时会更新。 1、非负整数：^\d+$<br />
2、正整数：^[0-9]*[1-9][0-9]*$<br />
3、非正整数：^((-\d+)|(0+))$<br />
4、负整数：^-[0-9]*[1-9][0-9]*$<br />
5、整数：^-?\d+$<br />
6、非负浮点数：^\d+(\.\d+)?$<br />
7、正浮点数：^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9 ]+)|([0-9]*[1-9][0-9]*))$<br />
8、非正浮点数：^((-\d+\.\d+)?)|(0+(\.0+)?))$<br />
9、负浮点数：^(-((正浮点数正则式)))$<br />
10、英文字符串：^[A-Za-z]+$<br />
11、英文大写串：^[A-Z]+$<br />
12、英文小写串：^[a-z]+$<br />
13、英文字符数字串：^[A-Za-z0-9]+$<br />
14、英数字加下划线串：^\w+$<br />
15、E-mail地址：^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$<br />
16、URL：^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$ 或：^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\&#8217;:+!]*([^&lt;&gt;\"\"])*$17、邮政编码：^[1-9]\d{5}$<br />
18、中文：^[\u0391-\uFFE5]+$<br />
19、电话号码：^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$<br />
20、手机号码：^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$<br />
21、双字节字符(包括汉字在内)：^\x00-\xff<br />
22、匹配首尾空格：(^\s*)|(\s*$)（像vbscript那样的trim函数）<br />
23、匹配HTML标记：&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;<br />
24、匹配空行：\n[\s| ]*\r<br />
25、提取信息中的网络链接：(h|H)(r|R)(e|E)(f|F)  *=  *(&#8216;|”)?(\w|\\|\/|\.)+(&#8216;|”|  *|&gt;)?<br />
26、提取信息中的邮件地址：\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*<br />
27、提取信息中的图片链接：(s|S)(r|R)(c|C)  *=  *(&#8216;|”)?(\w|\\|\/|\.)+(&#8216;|”|  *|&gt;)?<br />
28、提取信息中的IP地址：(\d+)\.(\d+)\.(\d+)\.(\d+)<br />
29、提取信息中的中国手机号码：(86)*0*13\d{9}<br />
30、提取信息中的中国固定电话号码：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}<br />
31、提取信息中的中国电话号码（包括移动和固定电话）：(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}<br />
32、提取信息中的中国邮政编码：[1-9]{1}(\d+){5}<br />
33、提取信息中的浮点数（即小数）：(-?\d*)\.?\d+<br />
34、提取信息中的任何数字 ：(-?\d*)(\.\d+)?<br />
35、IP：(\d+)\.(\d+)\.(\d+)\.(\d+)<br />
36、电话区号：/^0\d{2,3}$/<br />
37、腾讯QQ号：^[1-9]*[1-9][0-9]*$<br />
38、帐号(字母开头，允许5-16字节，允许字母数字下划线)：^[a-zA-Z][a-zA-Z0-9_]{4,15}$<br />
匹配中文字符的正则表达式： [\u4e00-\u9fa5]<br />
匹配双字节字符(包括汉字在内)：[^\x00-\xff]<br />
应用：计算字符串的长度（一个双字节字符长度计2，ASCII字符计1）<br />
String.prototype.len=function (){return this.replace([^\x00-\xff]/g,”aa”).length;}<br />
匹配空行的正则表达式：\n[\s| ]*\r<br />
匹配HTML标记的正则表达式：/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/<br />
匹配首尾空格的正则表达式：(^\s*)|(\s*$)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.hety.net/archives/269/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

