<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
	<channel>
		<title>zwws's 资料库</title>
		<link>http://www.zvv.cn/blog/</link>
		<description>努力思考 + 实践, 眼高手低是不行的.</description>
		<copyright>Copyright (C) 2004 Security Angel Team [S4T] All Rights Reserved.</copyright>
		<generator>SaBlog-X Version 1.6 Build 20080806</generator>
		<lastBuildDate>Sat, 19 May 2012 12:43:08 +0000</lastBuildDate>
		<ttl>30</ttl>
		<item>
			<guid>http://www.zvv.cn/blog/show-115-1.html</guid>
			<title>函数调用机制例解</title>
			<author>zwws</author>
			<description><![CDATA[<p><a href="http://www.cnblogs.com/huangpeng/archive/2009/09/05/1560901.html">http://www.cnblogs.com/huangpeng/archive/2009/09/05/1560901.html</a></p>]]></description>
			<link>http://www.zvv.cn/blog/show-115-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-3-1.html">玩转丨操作系统</category>
			<pubDate>2010-04-25 14:51</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-114-1.html</guid>
			<title>Windows快捷键2</title>
			<author>zwws</author>
			<description><![CDATA[<p>explorer-------打开资源管理器<br />
Nslookup-------IP地址侦测器<br />
logoff---------注销命令<br />
tsshutdn-------60秒倒计时关机命令<br />
lusrmgr.msc----本机用户和组<br />
services.msc---本地服务设置<br />
oobe/msoobe /a----检查XP是否激活<br />
notepad--------打开记事本<br />
cleanmgr-------垃圾整理<br />
net start messenger----开始信使服务<br />
compmgmt.msc---计算机管理<br />
net stop messenger-----停止信使服务<br />
conf-----------启动netmeeting<br />
dvdplay--------DVD播放器<br />
charmap--------启动字符映射表<br />
diskmgmt.msc---磁盘管理实用程序<br />
calc-----------启动计算器<br />
dfrg.msc-------磁盘碎片整理程序<br />
chkdsk.exe-----Chkdsk磁盘检查<br />
devmgmt.msc--- 设备管理器<br />
regsvr32 /u *.dll----停止dll文件运行<br />
drwtsn32------ 系统医生<br />
rononce -p ----15秒关机<br />
dxdiag---------检查DirectX信息<br />
regedt32-------注册表编辑器<br />
Msconfig.exe---系统配置实用程序<br />
rsop.msc-------组策略结果集<br />
mem.exe--------显示内存使用情况<br />
regedit.exe----注册表<br />
winchat--------XP自带局域网聊天<br />
progman--------程序管理器<br />
winmsd---------系统信息<br />
perfmon.msc----计算机性能监测程序<br />
winver---------检查Windows版本<br />
sfc /scannow-----扫描错误并复原<br />
taskmgr-----任务管理器(2000／xp／2003<br />
winver---------检查Windows版本<br />
wmimgmt.msc----打开windows管理体系结构(WMI)<br />
wupdmgr--------windows更新程序<br />
w脚本--------windows脚本宿主设置<br />
write----------写字板<br />
winmsd---------系统信息<br />
wiaacmgr-------扫描仪和照相机向导<br />
winchat--------XP自带局域网聊天<br />
mem.exe--------显示内存使用情况<br />
Msconfig.exe---系统配置实用程序<br />
mplayer2-------简易widnows media player<br />
mspaint--------画图板<br />
mstsc----------远程桌面连接<br />
mplayer2-------媒体播放机<br />
magnify--------放大镜实用程序<br />
mmc------------打开控制台<br />
mobsync--------同步命令<br />
dxdiag---------检查DirectX信息<br />
drwtsn32------ 系统医生<br />
devmgmt.msc--- 设备管理器<br />
dfrg.msc-------磁盘碎片整理程序<br />
diskmgmt.msc---磁盘管理实用程序<br />
dcomcnfg-------打开系统组件服务<br />
ddeshare-------打开DDE共享设置<br />
dvdplay--------DVD播放器<br />
net stop messenger-----停止信使服务<br />
net start messenger----开始信使服务<br />
nslookup-------网络管理的工具向导<br />
ntbackup-------系统备份和还原<br />
narrator-------屏幕&ldquo;讲述人&rdquo;<br />
ntmsmgr.msc----移动存储管理器<br />
ntmsoprq.msc---移动存储管理员操作请求<br />
netstat -an----(TC)命令检查接口<br />
syncapp--------创建一个公文包<br />
sysedit--------系统配置编辑器<br />
sigverif-------文件签名验证程序<br />
sndrec32-------录音机<br />
shrpubw--------创建共享文件夹<br />
secpol.msc-----本地安全策略<br />
services.msc---本地服务设置<br />
Sndvol32-------音量控制程序<br />
sfc.exe--------系统文件检查器<br />
sfc /scannow---windows文件保护<br />
tsshutdn-------60秒倒计时关机命令<br />
tourstart------xp简介(安装完成后出现的漫游xp程序)<br />
taskmgr--------任务管理器<br />
eventvwr-------事件查看器<br />
eudcedit-------造字程序<br />
explorer-------打开资源管理器<br />
packager-------对象包装程序<br />
perfmon.msc----计算机性能监测程序<br />
progman--------程序管理器<br />
regedit.exe----注册表<br />
rsop.msc-------组策略结果集<br />
regedt32-------注册表编辑器<br />
rononce -p ----15秒关机<br />
regsvr32 /u *.dll----停止dll文件运行<br />
regsvr32 /u zipfldr.dll------取消ZIP支持<br />
cmd.exe--------CMD命令提示符<br />
chkdsk.exe-----Chkdsk磁盘检查<br />
certmgr.msc----证书管理实用程序<br />
calc-----------启动计算器<br />
charmap--------启动字符映射表<br />
cliconfg-------SQL SERVER 客户端网络实用程序<br />
Clipbrd--------剪贴板查看器<br />
conf-----------启动netmeeting<br />
compmgmt.msc---计算机管理<br />
cleanmgr-------垃圾整理<br />
ciadv.msc------索引服务程序<br />
osk------------打开屏幕键盘<br />
odbcad32-------ODBC数据源管理器<br />
oobe/msoobe /a----检查XP是否激活<br />
lusrmgr.msc----本机用户和组<br />
logoff---------注销命令<br />
iexpress-------木马捆绑工具，系统自带<br />
Nslookup-------IP地址侦测器<br />
fsmgmt.msc-----共享文件夹管理器<br />
utilman--------辅助工具管理器<br />
gpedit.msc-----组策略<br />
（windows键就是指的键盘上那个像小窗户一样的键，如果是非笔记本的键盘的话就是ctrl健里面那个）<br />
单独按Windows：显示或隐藏&ldquo;开始&rdquo;功能表 <br />
　　Windows+BREAK：显示&ldquo;系统属性&rdquo;对话框 <br />
　　Windows+D：显示桌面 <br />
　　Windows+M：最小化所有窗口 <br />
　　Windows+Shift+M：还原最小化的窗口 <br />
　　Windows+E：开启&ldquo;资源管理器&rdquo; <br />
　　Windows+F：查找文件或文件夹 <br />
　　Windows+CTRL+F：查找电脑 <br />
　　Windows+F1：显示Windows&ldquo;帮助&rdquo; <br />
　　Windows+R：开启&ldquo;运行&rdquo;对话框 <br />
　　Windows+U：开启&ldquo;公用程序管理器&rdquo; <br />
　　Windows+L：切换使用者（WindowsXP新功能）<br />
Ctrl快捷键：<br />
Ctrl+S保存 <br />
Ctrl+W关闭程序 <br />
Ctrl+N新建 <br />
Ctrl+O打开 <br />
Ctrl+Z撤销 <br />
Ctrl+F查找 <br />
Ctrl+X剪切 <br />
Ctrl+C复制 <br />
Ctrl+V粘贴 <br />
Ctrl+A全选 <br />
Ctrl+[缩小文字 <br />
Ctrl+]放大文字 <br />
Ctrl+B粗体 <br />
Ctrl+I斜体 <br />
Ctrl+U下划线 <br />
Ctrl+Shift输入法切换 <br />
Ctrl+空格中英文切换 <br />
Ctrl+回车QQ号中发送信息 <br />
Ctrl+Home光标快速移到文件头 <br />
Ctrl+End光标快速移到文件尾 <br />
Ctrl+Esc显示开始菜单 <br />
Ctrl+Shift+&lt;快速缩小文字 <br />
Ctrl+Shift+&gt;快速放大文字 <br />
Ctrl+F5在IE中强行刷新 <br />
Ctrl+拖动文件复制文件 <br />
Ctrl+Backspace启动\关闭输入法 <br />
拖动文件时按住Ctrl+Shift创建快捷方式<br />
Alt快捷键 <br />
Alt+F4关闭当前程序 <br />
Alt+空格+C关闭窗口 <br />
Alt+空格+N最小化当前窗口 <br />
Alt+空格+R恢复最小化窗口 <br />
Alt+空格+X最大化当前窗口 <br />
Alt+空格+M移动窗口 <br />
Alt+空格+S改变窗口大小 <br />
Alt+Tab两个程序交换 <br />
Alt+255QQ号中输入无名人 <br />
Alt+F打开文件菜单 <br />
Alt+V打开视图菜单 <br />
Alt+E打开编辑菜单 <br />
Alt+I打开插入菜单 <br />
Alt+O打开格式菜单 <br />
Alt+T打开工具菜单 <br />
Alt+A打开表格菜单 <br />
Alt+W打开窗口菜单 <br />
Alt+H打开帮助菜单 <br />
Alt+回车查看文件属性 <br />
Alt+双击文件查看文件属性 <br />
Alt+X关闭C语言<br />
Shift快捷键 <br />
Shift+空格半\全角切换 <br />
Shift+右击右菜单打开方式 <br />
Shift+F10选中文件的右菜单 <br />
Shift+多级文件全部关闭 <br />
Shift+Del直接删除文件 <br />
Shift+＾处在中文标点符号半角在智能ABC中省曰号 <br />
Shift+\处在中文标点符号半角在智能ABC中顿号</p>]]></description>
			<link>http://www.zvv.cn/blog/show-114-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-6-1.html">共享丨实用技巧</category>
			<pubDate>2010-04-25 14:51</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-113-1.html</guid>
			<title>Windows 快捷键1</title>
			<author>zwws</author>
			<description><![CDATA[<p>cmd&nbsp;&nbsp;&nbsp;&nbsp; 这个命令是调用类似dos的命令窗口的命令，在这里你可以像操作DOS一样操作Windows.<br />
inetmgr&nbsp;&nbsp; 这个命令相信做过网站的都知道，对了这就是调用IIS的快捷命令。<br />
mstsc&nbsp;&nbsp;&nbsp;&nbsp; 这个是用来启动远程桌面连接的快捷命令，相信搞过网络的人对此不会陌生。<br />
regedit&nbsp;&nbsp; 这个命令大家都很熟悉，是用来调用注册表的。<br />
appwiz.cpl&nbsp;&nbsp;&nbsp;&nbsp; 进入添加和删除程序的快捷命令<br />
control userpasswords2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 进入用户账户设置界面的命令<br />
cleanmgr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 磁盘垃圾清理快捷命令<br />
command.com&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 调用的则是系统内置的 NTVDM，一个 DOS虚拟机。它完全是一个类似 Virtual PC 的 虚拟环<br />
境，和系统本身联系不大。当我们在命令提示符下运行 DOS 程序时，实际上也 是自动转移到 NTVDM虚拟机下，和 CMD<br />
本身没什么关系。<br />
calc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 启动计算器<br />
chkdsk.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 磁盘检查<br />
compmgmt.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 计算机管理<br />
devmgmt.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 设备管理器<br />
diskmgmt.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 磁盘管理实用程序<br />
dfrg.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 磁盘碎片整理程序<br />
drwtsn32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统医生<br />
dvdplay&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows Media Player<br />
explorer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 资源管理器<br />
dxdiag&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DirectX Diagnostic Tool<br />
gpedit.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 组策略编辑器<br />
gpupdate /target:computer /force&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 强制刷新组策略<br />
eventvwr.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 事件查看器<br />
logoff&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注销命令<br />
lusrmgr.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本地用户和组&nbsp;&nbsp; <br />
msinfo32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统信息<br />
msconfig&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统配置实用程序<br />
net start (servicename)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 启动该服务<br />
net stop (servicename)停止该服务<br />
notepad&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 记事本<br />
nusrmgr.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 同control userpasswords，打开用户帐户控制面板<br />
Nslookup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; IP地址侦测器<br />
oobe/msoobe /a&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 检查XP是否激活<br />
perfmon&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 计算机性能监视器<br />
regedit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统注册表<br />
regedt32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 注册表编辑器<br />
regsvr32 /u *.dll&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 停止dll文件运行<br />
route print&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 查看路由表<br />
rononce -p&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 15秒快速关机<br />
rsop.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 组策略结果集<br />
rundll32.exe rundll32.exe %Systemroot%\System32\shimgvw.dll,ImageView_Fullscreen&nbsp;&nbsp;&nbsp; 启动一个空白的Windows 图<br />
片和传真查看器<br />
&nbsp;secpol.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本地安全策略<br />
services.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本地服务设置<br />
sfc /scannow&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 启动系统文件检查器<br />
sndrec32&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 录音机<br />
taskmgr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 任务管理器<br />
tsshutdn&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 60秒倒记时关机命令<br />
winchat&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; winxp自带局域网聊天<br />
winmsd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统信息<br />
winver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示About Windows 窗口<br />
wupdmgr&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; update<br />
firewall.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 防火墙<br />
magnify&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 放大镜<br />
sysdm.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统属性<br />
sysdm.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; windows系统安全工具<br />
write&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 写字板<br />
tourstart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows XP 漫游<br />
utilman&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 辅助工具管理器<br />
spider&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 蜘蛛牌游戏<br />
sysedit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统配置编辑器<br />
系统文件检查工具(立即扫描) sfc /scannow<br />
系统文件检查工具(下次启动时扫描) sfc /scanonce<br />
系统文件检查工具(每次启动时扫描) sfc /scanboot<br />
系统文件检查工具(返回默认设置) sfc /revert<br />
系统文件检查工具(清除文件缓存) sfc /purgecache<br />
系统文件检查工具(设置缓存大小=x) sfc /cachesize=x<br />
cliconfg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQL Client客户端网络实用工具<br />
mmsys.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 声音和音频设备属性&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
shutdown&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 关闭windows<br />
fsmgmt.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 共享文件夹<br />
wscui.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Windows安全中心<br />
control schedtasks&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 任务计划<br />
sticpl.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 扫描仪与相机<br />
ntmsmgr.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 可移动存储<br />
intl.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 区域的语言选择<br />
eudcedit&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; TrueType造字程序<br />
control printers&nbsp;&nbsp;&nbsp; 打印机和传真<br />
powercfg.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 电源选项属性<br />
telephon.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 电话与调制解调器选项<br />
osk&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 屏幕键盘<br />
odbccp32.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ODBC数据源管理器<br />
packager&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对象包装程序<br />
ncpa.cpl /control netconnections&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 网络连接<br />
netsetup.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 网络连接向导<br />
main.cpl /control mouse&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 鼠标属性<br />
winmine&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 扫雷游戏<br />
secpol.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 本地安全设置<br />
control keyboard&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 键盘属性<br />
IP配置实用程序(显示连接配置) ipconfig /all <br />
IP配置实用程序(显示DNS缓存内容) ipconfig /displaydns <br />
IP配置实用程序(删除DNS缓存内容) ipconfig /flushdns <br />
IP配置实用程序(释放全部(或指定)适配器的由DHCP分配的动态IP地址) ipconfig /release <br />
IP配置实用程序(为全部适配器重新分配IP地址) ipconfig /renew <br />
IP配置实用程序(刷新DHCP并重新注册DNS) ipconfig /registerdns <br />
IP配置实用程序(显示DHCP Class ID) ipconfig /showclassid <br />
IP配置实用程序(修改DHCP Class ID) ipconfig /setclassid<br />
inetcpl.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; internet属性<br />
ciadv.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 索引服务<br />
winver&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 检查windows版本号<br />
mplayer2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 简易widnows media player<br />
mspaint&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 画图板<br />
mem.exe&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示内存使用状况<br />
compmgmt.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 计算机管理<br />
wmimgmt.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 打开windows管理体系结构(WMI)<br />
ntbackup&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 系统备份与还原<br />
narrator&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 屏幕&ldquo;讲述人&rdquo;<br />
netstat&nbsp; -an&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (TC)命令检查接口<br />
syncapp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 创建一个公文包<br />
sigverif&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件签名验证程序<br />
certmgr.msc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 证书管理实用程序<br />
iexpress&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 木马捆绑工具，系统自带<br />
access.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 辅助功能选项<br />
fsquirt&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Bluetooth文件传送向导<br />
dcomcnfg&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 组件服务<br />
timedate.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 日期时间属性<br />
ddeshare&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DDE共享<br />
control desktop&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示属性<br />
desk.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示属性<br />
control.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 显示属性的外观选项卡<br />
sigverif&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 文件签名验证 <br />
快速查找 findfast.cpl<br />
文件夹选项 control folders<br />
字体文件夹 control fonts<br />
字体文件夹 fonts<br />
freecell&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 空档接龙游戏 <br />
joy.cpl&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 游戏控制</p>]]></description>
			<link>http://www.zvv.cn/blog/show-113-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-6-1.html">共享丨实用技巧</category>
			<pubDate>2010-04-25 14:50</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-112-1.html</guid>
			<title>Notepad++运行PHP, Python</title>
			<author>zwws</author>
			<description><![CDATA[<p><strong>直接运行</strong></p>
<p>Np++界面按F5弹出运行框, 然后~</p>
<p>Python：<br />
cmd /k C:\Python26\python.exe &quot;$(FULL_CURRENT_PATH)&quot; &amp; ECHO. &amp; PAUSE &amp; EXIT</p>
<p>PHP:<br />
cmd /k D:\Wamp\bin\php\php5.3.0\php.exe &quot;$(FULL_CURRENT_PATH)&quot; &amp; ECHO. &amp; PAUSE &amp; EXIT</p>
<p><strong>快捷方式</strong></p>
<p>保存上述命令为快捷方式, 想修改快捷键，在 &quot;设置－＞管理快捷键－＞Run Commands&quot; 中修改.</p>
<p>$(FULL_CURRENT_PATH) 的含义是当前文件的完整路径, 这是 Notepad++ 的宏定义, 更多的相关宏可以参见官方FAQ: Run external tools. 注意要用引号括起来, 防止路径中间有空格.</p>
<p>EXIT&nbsp;退出 CMD.EXE 程序(命令解释程序).<br />
PAUSE&nbsp;暂停批文件的处理并显示消息.<br />
ECHO.&nbsp;(或ECHO\) 打印换行.</p>
<p><strong>参考网址</strong><br />
<a href="http://www.bloomandkevin.cn/2009/03/notepadpythonphp.html">http://www.bloomandkevin.cn/2009/03/notepadpythonphp.html</a></p>]]></description>
			<link>http://www.zvv.cn/blog/show-112-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-6-1.html">共享丨实用技巧</category>
			<pubDate>2010-04-25 14:48</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-111-1.html</guid>
			<title>SVN trunk, branches and tags</title>
			<author>zwws</author>
			<description><![CDATA[<p><strong>翻译者：zwws<br />
原　文：</strong><a target="_blank" href="http://www.jmfeurprier.com/blog/2010/02/08/svn-trunk-branches-and-tags/"><strong>SVN trunk, branches and tags</strong></a><br />
<strong>译　言：<a href="http://article.yeeyan.org/view/132319/81358">http://article.yeeyan.org/view/132319/81358</a></strong><br />
<strong>转载请注明<a href="http://www.zvv.cn/blog/show-111-1.html">原链接</a>，谢谢。</strong></p>
<p><em>因水平所限，如果翻译得和原文有差，敬请评论指正。</em></p>
<p>　　在本篇文章中, 我将会详细说明我是如何应用SVN trunk(树干)、branches(分支)和tags(标记)。这种方法同样被称为&ldquo;branch always&rdquo;，两者非常接近。可能我所介绍的并不是最好的方法，但是它会给新手一些解释说明，告诉他们trunk、branches和tags是什么，并且该如何去应用它们。</p>
<p>　　当然，如果本文有些要点需要澄清/确认，亦或者有一些错误的观点，还请你评论，自由发表自己的观点。</p>
<p><strong>&mdash;&mdash;简单的对比</strong></p>
<p>　　SVN的工作机制在某种程度上就像一颗正在生长的树：</p>
<ul>
    <li>一棵有树干和许多分支的树</li>
    <li>分支从树干生长出来，并且细的分支从相对较粗的树干中长出</li>
    <li>一棵树可以只有树干没有分支（但是这种情况不会持续很久，随着树的成长，肯定会有分支啦，^^）</li>
    <li>一颗没有树干但是有很多分支的树看起来更像是地板上的一捆树枝</li>
    <li>如果树干患病了，最终分支也会受到影响，然后整棵树就会死亡</li>
    <li>如果分支患病了，你可以剪掉它，然后其他分支还会生长出来的哦！</li>
    <li>如果分支生长太快了，对于树干它可能会非常沉重，最后整棵树会垮塌掉</li>
    <li>当你感觉你的树、树干或者是分支看起来很漂亮的时候，你可以给它照张相，这样就就可以记得它在那时是多么的赞。</li>
</ul>
<p><strong>&mdash;&mdash;Trunk</strong></p>
<p>　　Trunk是放置稳定代码的主要环境，就好像一个汽车工厂，负责将成品的汽车零件组装在一起。</p>
<p>　　以下内容将告诉你如何使用SVN trunk：</p>
<ul>
    <li>
    <div>除非你必须处理一些容易且能迅速解决的BUG，或者你必须添加一些无关逻辑的文件（比如媒体文件：图像，视频，CSS等等），否则永远不要在trunk直接做开发</div>
    </li>
    <li>
    <div>不要因为特殊的需求而去对先前的版本做太大的改变，如何相关的情况都意味着需要建立一个branch（如下所述）</div>
    </li>
    <li>
    <div>不要提交一些可能破坏trunk的内容，例如从branch合并</div>
    </li>
    <li>
    <div>如果你在某些时候偶然间破坏了trunk，bring some cake the next day (&rdquo;with great responsibilities come&hellip; huge cakes&rdquo;)</div>
    </li>
</ul>
<p><strong>&mdash;&mdash;Branches</strong></p>
<p>　　一个branch就是从一个SVN仓库中的子树所作的一份普通拷贝。通常情况它的工作类似与UNIX系统上的符号链接，但是你一旦在一个SVN branch里修改了一些文件，并且这些被修改的文件从拷贝过来的源文件独立发展，就不能这么认为了。当一个branch完成了，并且认为它足够稳定的时候，它必须合并回它原来的拷贝的地方，也就是说：如果原来是从trunk中拷贝的，就应该回到trunk去，或者合并回它原来拷贝的父级branch。</p>
<p>　　以下内容将告诉你如何使用SVN branches：</p>
<ul>
    <li>
    <div>如果你需要修改你的应用程序，或者为它开发一个新的特性，请从trunk中创建一个新的branch，然后基于这个新的分支进行开发</div>
    </li>
    <li>
    <div>除非是因为必须从一个branch中创建一个新的子branch，否则新的branch必须从trunk创建</div>
    </li>
    <li>
    <div>当你创建了一个新branch，你应当立即切换过去。如果你没有这么做，那你为什么要在最初的地方创建这个分支呢？</div>
    </li>
</ul>
<p><strong>&mdash;&mdash;Tags</strong></p>
<p>　　从表面上看，SVN branches和SVN tags没有什么差别，但是从概念上来说，它们有许多差别。其实一个SVN tags就是上文所述的&ldquo;为这棵树照张相&rdquo;：一个trunk或者一个branch修订版的命名快照。</p>
<p>　　以下内容将告诉你如何使用SVN tags：</p>
<ul>
    <li>
    <div>作为一个开发者，永远不要切换至、取出，或者向一个SVN tag提交任何内容：一个tag好比某种&ldquo;照片&rdquo;，并不是实实在在的东西，tags只可读，不可写。</div>
    </li>
    <li>
    <div>在特殊或者需要特别注意的环境中，如：生产环境（production）、？（staging）、测试环境（testing）等等，只能从一个修复过的（fixed）tag中checkout和update，永远不要commit至一个tag。</div>
    </li>
    <li>
    <div>对于上述提及到的环境，可以创建如下的tags：&ldquo;production&rdquo;，&ldquo;staging&rdquo;，&ldquo;testing&rdquo;等等。你也可以根据软件版本、项目的成熟程度来命名tag：&ldquo;1.0.3&rdquo;，&ldquo;stable&rdquo;，&ldquo;latest&rdquo;等等。</div>
    </li>
    <li>
    <div>当trunk已经稳定，并且可以对外发布，也要相应地重新创建tags，然后再更新相关的环境（production, staging, etc）</div>
    </li>
</ul>
<p><strong>&mdash;&mdash;工作流样例</strong></p>
<p>　　假设你必须添加了一个特性至一个项目，且这个项目是受版本控制的，你差不多需要完成如下几个步骤：</p>
<ol>
    <li>
    <div>使用SVN checkout或者SVN switch从这个项目的trunk获得一个新的工作拷贝（branch）</div>
    </li>
    <li>
    <div>使用SVN切换至新的branch</div>
    </li>
    <li>
    <div>完成新特性的开发（当然，要做足够的测试，包括在开始编码前）</div>
    </li>
    <li>
    <div>一旦这个特性完成并且稳定（已提交），并经过你的同事们确认，切换至trunk</div>
    </li>
    <li>
    <div>合并你的分支至你的工作拷贝（trunk），并且解决一系列的冲突</div>
    </li>
    <li>
    <div>重新检查合并后的代码</div>
    </li>
    <li>
    <div>如果可能的话，麻烦你的同事对你所编写、更改的代码进行一次复查（review）</div>
    </li>
    <li>
    <div>提交合并后的工作拷贝至trunk</div>
    </li>
    <li>
    <div>如果某些部署需要特殊的环境（生成环境等等），请更新相关的tag至你刚刚提交到trunk的修订版本</div>
    </li>
    <li>
    <div>使用SVN update部署至相关环境</div>
    </li>
</ol>]]></description>
			<link>http://www.zvv.cn/blog/show-111-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-1-1.html">原创丨PHP笔记</category>
			<pubDate>2010-02-11 12:04</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-110-1.html</guid>
			<title>Nginx(PHP/FastCGI)的PATH_INFO问题补充</title>
			<author>zwws</author>
			<description><![CDATA[<p>注: 本文是 <a href="http://www.laruence.com/2009/11/13/1138.html">http://www.laruence.com/2009/11/13/1138.html</a> 的补充.&nbsp;&nbsp; <br />
仅为解决使用上文配置PATH_INFO后, 当请求的URI为&quot;&lt;script&gt;/&quot;的情况下PATH_INFO为&quot;/index.php&quot;的问题, 使nginx下的PAHT_INFO表现与Apache一致.<br />
&nbsp; <br />
如: 访问 &quot;<a href="http://localhost/p.php/">http://localhost/<strong>p.php/</strong></a>&quot; 输出的PATH_INFO为&quot;/index.php&quot;&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp; location ~ \.php<font color="#ff0000">($|/)</font> {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; root&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; D:/WWW/Localhost;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_pass&nbsp;&nbsp; 127.0.0.1:9000;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_index&nbsp; index.php;&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set $script&nbsp;&nbsp;&nbsp; $uri;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set $path_info &quot;&quot;;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if ($uri ~ &quot;^(.+\.php)(/.<font color="#ff0000">*</font>)&quot;) {&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set&nbsp; $script&nbsp;&nbsp;&nbsp;&nbsp; $1;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; set&nbsp; $path_info&nbsp; $2;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;<br />
&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_param SCRIPT_FILENAME $document_root$script;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_param SCRIPT_NAME $script;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_param PATH_INFO $path_info;&nbsp;&nbsp; <br />
&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fastcgi_params;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp; <br />
&nbsp; <br />
参考文档: <a href="http://wiki.nginx.org/NginxSymfony">http://wiki.nginx.org/NginxSymfony</a>, 有细微修改</p>]]></description>
			<link>http://www.zvv.cn/blog/show-110-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-1-1.html">原创丨PHP笔记</category>
			<pubDate>2009-11-15 13:44</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-109-1.html</guid>
			<title>守护进程删除smarty的缓存文件(注释版)</title>
			<author>zwws</author>
			<description><![CDATA[<p>原文: <a href="http://jackywdx.cn/2009/07/del_smarty_cache_with_php_daemon/">鸭嘴的Blog</a></p>
<p>偶参阅了网上资料加了注释.</p>
<p><em>详见全文</em></p><br /><br /><a href="http://www.zvv.cn/blog/show-109-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.zvv.cn/blog/show-109-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-1-1.html">原创丨PHP笔记</category>
			<pubDate>2009-07-30 14:09</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-108-1.html</guid>
			<title>顽皮的闭包</title>
			<author>zwws</author>
			<description><![CDATA[<p>部分引用来源:<a target="blank" href="http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1530074.html">http://www.cnblogs.com/rubylouvre/archive/2009/07/24/1530074.html</a></p>
<p><strong>问题描述</strong><br />
有个函数fn, 定义在某作用域r中, 函数fn的定义语句中包含对作用域v的某个变量v的引用, 由于变量v的作用域在v中, 所以倘若函数a将变量v绑定到位于其他作用域的应用中时, 变量v无法以window.v 或者 obj.v 的形式在后期引用, 只好以指针或者变量地址方式保存在函数a中用以持久变量v.</p>
<p><em>[详见全文]</em></p><br /><br /><a href="http://www.zvv.cn/blog/show-108-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.zvv.cn/blog/show-108-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-4-1.html">交流丨网页相关</category>
			<pubDate>2009-07-28 11:53</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-107-1.html</guid>
			<title>PHP 输出缓存一二</title>
			<author>zwws</author>
			<description><![CDATA[<p>PHP中的output_buffering可以堆砌, 即可以多次调用ob_start()以开启缓冲区,具体参照手册中ob_start()的介绍,相关摘录如下:</p>
<p>Output buffers are stackable, that is, you may call ob_start() while another ob_start() is active. Just make sure that you call ob_end_flush() the appropriate number of times. If multiple output callback functions are active, output is being filtered sequentially through each of them in nesting order.</p>
<p>php.ini中的output_buffering不为Off时, 会自动开启一个缓冲区(等同于调用一次ob_start()), 如果为数值, 即为缓冲区的缺省大小.</p>
<p>ob_get_contents()在未开启缓冲区的情况下调用不报错, 返回false.而ob_end_clean()以及相类似操作会报告Notice级别错误, 告知未开启缓冲区.&nbsp;</p>]]></description>
			<link>http://www.zvv.cn/blog/show-107-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-1-1.html">原创丨PHP笔记</category>
			<pubDate>2009-07-20 15:19</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-106-1.html</guid>
			<title>使用位运算来实现PHP权限控制</title>
			<author>zwws</author>
			<description><![CDATA[<p><span style="font-family: Courier New">原理: 将每个二进制位为一个权限标识位</span></p>
<ul>
    <li><span style="font-family: Courier New">增加权限使用 <font color="#0000ff"><strong>| </strong></font><font color="#000000">(无论存在与否, 将对应的权限位置1)</font></span></li>
    <li><span style="font-family: Courier New">删除权限使用 <font color="#0000ff"><strong>^</strong></font> 或 <font color="#0000ff"><strong>&amp; ~</strong> </font><font color="#000000">(无论存在与否, 将对应的权限位置0)</font></span></li>
    <li><span style="font-family: Courier New">判断权限使用 <font color="#0000ff"><strong>&amp;</strong>&nbsp;</font><font color="#000000">(使用与判断对应的权限位是否为1, 是, 返回非0; 不是, 返回0)</font></span></li>
</ul>
<div><span style="font-family: Courier New"><a href="http://xiaobin.net/archives/8/">http://xiaobin.net/archives/8/</a><br />
<a href="http://www.lizhijin.com/view.php/PHP/140.html">http://www.lizhijin.com/view.php/PHP/140.html</a></span></div>
<div><span style="font-family: Courier New"><a href="http://topic.csdn.net/u/20090421/23/25ff3c5c-8bd1-4899-a05e-ecac2bad36e6.html">http://topic.csdn.net/u/20090421/23/25ff3c5c-8bd1-4899-a05e-ecac2bad36e6.html</a>&nbsp;(算法与前两则不同)</span></div>]]></description>
			<link>http://www.zvv.cn/blog/show-106-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-1-1.html">原创丨PHP笔记</category>
			<pubDate>2009-07-20 15:18</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-105-1.html</guid>
			<title>利用Curl、socket、file_get_contents POST数据</title>
			<author>zwws</author>
			<description><![CDATA[<div class="codeText">
<div class="codeHead">PHP代码</div>
<ol class="dp-c">
    <li class="alt"><span><span>&lt;?php &nbsp;&nbsp;</span></span></li>
    <li><span class="comment">/** </span>&nbsp;</li>
    <li class="alt"><span><span class="comment">*&nbsp;Socket版本 </span>&nbsp;</span></li>
    <li><span><span class="comment">*&nbsp;使用方法： </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">*&nbsp;$post_string&nbsp;=&nbsp;&quot;app=socket&amp;version=beta&quot;; </span>&nbsp;</span></li>
    <li><span><span class="comment">*&nbsp;request_by_socket('facebook.cn','/restServer.php',$post_string); </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="keyword">function</span><span>&nbsp;request_by_socket(</span><span class="vars">$remote_server</span><span>,</span><span class="vars">$remote_path</span><span>,</span><span class="vars">$post_string</span><span>,</span><span class="vars">$port</span><span>&nbsp;=&nbsp;80,</span><span class="vars">$timeout</span><span>&nbsp;=&nbsp;30){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$socket</span><span>&nbsp;=&nbsp;</span><span class="func">fsockopen</span><span>(</span><span class="vars">$remote_server</span><span>,</span><span class="vars">$port</span><span>,</span><span class="vars">$errno</span><span>,</span><span class="vars">$errstr</span><span>,</span><span class="vars">$timeout</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">if</span><span>&nbsp;(!</span><span class="vars">$socket</span><span>)&nbsp;</span><span class="keyword">die</span><span>(</span><span class="string">&quot;$errstr($errno)&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(</span><span class="vars">$socket</span><span>,</span><span class="string">&quot;POST&nbsp;$remote_path&nbsp;HTTP/1.0&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(</span><span class="vars">$socket</span><span>,</span><span class="string">&quot;User-Agent:&nbsp;Socket&nbsp;Example&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(</span><span class="vars">$socket</span><span>,</span><span class="string">&quot;HOST:&nbsp;$remote_server&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(</span><span class="vars">$socket</span><span>,</span><span class="string">&quot;Content-type:&nbsp;application/x-www-form-urlencoded&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(</span><span class="vars">$socket</span><span>,</span><span class="string">&quot;Content-length:&nbsp;&quot;</span><span>.</span><span class="func">strlen</span><span>(</span><span class="vars">$post_string</span><span>)+8.</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(</span><span class="vars">$socket</span><span>,</span><span class="string">&quot;Accept:*/*&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(</span><span class="vars">$socket</span><span>,</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(</span><span class="vars">$socket</span><span>,</span><span class="string">&quot;mypost=$post_string&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;fwrite(</span><span class="vars">$socket</span><span>,</span><span class="string">&quot;&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$header</span><span>&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span>&nbsp;(</span><span class="vars">$str</span><span>&nbsp;=&nbsp;trim(</span><span class="func">fgets</span><span>(</span><span class="vars">$socket</span><span>,4096)))&nbsp;{ &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$header</span><span>.=</span><span class="vars">$str</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$data</span><span>&nbsp;=&nbsp;</span><span class="string">&quot;&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">while</span><span>&nbsp;(!</span><span class="func">feof</span><span>(</span><span class="vars">$socket</span><span>))&nbsp;{ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$data</span><span>&nbsp;.=&nbsp;</span><span class="func">fgets</span><span>(</span><span class="vars">$socket</span><span>,4096); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="vars">$data</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>/** &nbsp;&nbsp;</span></li>
    <li class="alt"><span>*&nbsp;Curl版本 &nbsp;&nbsp;</span></li>
    <li><span>*&nbsp;使用方法： &nbsp;&nbsp;</span></li>
    <li class="alt"><span>*&nbsp;</span><span class="vars">$post_string</span><span>&nbsp;=&nbsp;</span><span class="string">&quot;app=request&amp;version=beta&quot;</span><span>; &nbsp;&nbsp;</span></li>
    <li><span>*&nbsp;request_by_curl(</span><span class="string">'http://facebook.cn/restServer.php'</span><span>,</span><span class="vars">$post_string</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>*/ &nbsp;&nbsp;</span></li>
    <li><span class="keyword">function</span><span>&nbsp;request_by_curl(</span><span class="vars">$remote_server</span><span>,</span><span class="vars">$post_string</span><span>){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$ch</span><span>&nbsp;=&nbsp;curl_init(); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt(</span><span class="vars">$ch</span><span>,CURLOPT_URL,</span><span class="vars">$remote_server</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt(</span><span class="vars">$ch</span><span>,CURLOPT_POSTFIELDS,</span><span class="string">'mypost='</span><span>.</span><span class="vars">$post_string</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt(</span><span class="vars">$ch</span><span>,CURLOPT_RETURNTRANSFER,true); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;curl_setopt(</span><span class="vars">$ch</span><span>,CURLOPT_USERAGENT,</span><span class="string">&quot;Jimmy's&nbsp;CURL&nbsp;Example&nbsp;beta&quot;</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$data</span><span>&nbsp;=&nbsp;curl_exec(</span><span class="vars">$ch</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;curl_close(</span><span class="vars">$ch</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="vars">$data</span><span>; &nbsp;&nbsp;</span></li>
    <li class="alt"><span>} &nbsp;&nbsp;</span></li>
    <li><span class="comment">/** </span>&nbsp;</li>
    <li class="alt"><span><span class="comment">*&nbsp;其它版本 </span>&nbsp;</span></li>
    <li><span><span class="comment">*&nbsp;使用方法： </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">*&nbsp;$post_string&nbsp;=&nbsp;&quot;app=request&amp;version=beta&quot;; </span>&nbsp;</span></li>
    <li><span><span class="comment">*&nbsp;request_by_other('http://facebook.cn/restServer.php',$post_string); </span>&nbsp;</span></li>
    <li class="alt"><span><span class="comment">*/</span><span>&nbsp;&nbsp;</span></span></li>
    <li><span class="keyword">function</span><span>&nbsp;request_by_other(</span><span class="vars">$remote_server</span><span>,</span><span class="vars">$post_string</span><span>){ &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$context</span><span>&nbsp;=&nbsp;</span><span class="keyword">array</span><span>( &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'http</span><span class="string">'=&gt;array( </span>&nbsp;</li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'</span><span>method</span><span class="string">'=&gt;'</span><span>POST</span><span class="string">', </span>&nbsp;</span></li>
    <li><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'</span><span>header</span><span class="string">'=&gt;'</span><span>Content-type:&nbsp;application/x-www-form-urlencoded</span><span class="string">'.&quot;&quot;. </span>&nbsp;</span></li>
    <li class="alt"><span><span class="string">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'</span><span>User-Agent&nbsp;:&nbsp;Jimmy's </span><span class="string">POST&nbsp;Example&nbsp;beta'</span><span>.</span><span class="string">&quot;&quot;</span><span>. &nbsp;&nbsp;</span></span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string">'Content-length:&nbsp;'</span><span>.</span><span class="func">strlen</span><span>(</span><span class="vars">$post_string</span><span>)+8, &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="string">'content'</span><span>=&gt;</span><span class="string">'mypost='</span><span>.</span><span class="vars">$post_string</span><span>) &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$stream_context</span><span>&nbsp;=&nbsp;stream_context_create(</span><span class="vars">$context</span><span>); &nbsp;&nbsp;</span></li>
    <li><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="vars">$data</span><span>&nbsp;=&nbsp;</span><span class="func">file_get_contents</span><span>(</span><span class="vars">$remote_server</span><span>,FALSE,</span><span class="vars">$stream_context</span><span>); &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;</span><span class="keyword">return</span><span>&nbsp;</span><span class="vars">$data</span><span>; &nbsp;&nbsp;</span></li>
    <li><span>} &nbsp;&nbsp;</span></li>
    <li class="alt"><span>&nbsp;&nbsp;</span></li>
    <li><span>?&gt;&nbsp;&nbsp;</span></li>
</ol>
</div>]]></description>
			<link>http://www.zvv.cn/blog/show-105-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-2-1.html">转载丨Web相关</category>
			<pubDate>2009-05-19 09:40</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-104-1.html</guid>
			<title>Apache访问权限控制</title>
			<author>zwws</author>
			<description><![CDATA[<p>转载自<a target="_blank" title="仲子说" href="http://www.wangzhongyuan.com/">仲子说</a> [ <a target="_blank" title="仲子说" href="http://www.wangzhongyuan.com/">http://www.wangzhongyuan.com/</a> ]<br />
原文链接：<a class="permalink" title="Apache下进行Web页面访问权限控制" target="_blank" href="http://www.wangzhongyuan.com/archives/22.html">http://www.wangzhongyuan.com/archives/22.html</a></p>
<p>今天下午做一个WISA2007的论文库，专门存放WISA2007收到的论文，但是这些论文又不能让任何人都访问到，因此需要做一个访问权限的控 制。原来打算使用 Order Deny,Allow 这套机制，结果发现不好使，而且即使允许了一些ip，安全性仍然不高。但是查了一些这方面的资料，觉得还比较有用，所以以下也稍微介绍一下：</p>
<p><code> 今天又被这两个参数小小的耍了一把，痛下决心整理一下，免得再被耽误时间。</code></p>
<p><em>[详见全文]</em></p><br /><br /><a href="http://www.zvv.cn/blog/show-104-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.zvv.cn/blog/show-104-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-2-1.html">转载丨Web相关</category>
			<pubDate>2009-04-10 13:20</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-103-1.html</guid>
			<title>设计模式原则 详解(转)</title>
			<author>zwws</author>
			<description><![CDATA[<p>　　这篇文章,不需要你一次就看懂,如果你真的能一次都看懂,我想设计模式对于你来说已经没什么难度了..因为设计模式就是要体现这些原则的,你可以把设 计原则看做是一门语言,设计模式是由这些语言编码的程序..你既然已经明白,精通了语言,剩下的编码自然是很简单的事情,编码的越多则经验越多,经验越多 则对原则的理解就越深...这是一个学习领悟的过程..</p>
<p>　　我希望这篇文章能帮助新人感受到设计模式的乐趣,避免重复编码....减少劳动量..如果你能在用心静静的体会文章的每个字,每段话的意思,这样可以 避免走很多弯路...我以前学习设计模式的时候,就是因为忽略了原则,凭着感觉,看着书来学习设计模式,结果就是知其然而不知其所以然....如果你是初 学设计模式,再了解了OOP的三大原则(封套,继承,多态)之后,请反复的结合原则,来学习设计模式..这样可以达到事半功倍的效果...<br />
<br />
<em>详见全文</em></p><br /><br /><a href="http://www.zvv.cn/blog/show-103-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.zvv.cn/blog/show-103-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-2-1.html">转载丨Web相关</category>
			<pubDate>2009-04-01 15:09</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-102-1.html</guid>
			<title>设计模式原则笔记</title>
			<author>zwws</author>
			<description><![CDATA[<p><strong>单一职责原则 SRP (Single Reponsibility Principle) </strong></p>
<p>就一个类而言，应该仅有一个引起它变化的原因。 软件设计真正要做的许多内容，就是发现原则并把那些原则相互分离。如果多余一个动机去改变一个类，那么这个类就具有多余的一个职责，这时候就应该考虑类的职责分离。</p>
<p><strong>开放封闭原则 OCP (Open-Colosed Principle) </strong></p>
<p>软件实体(类、模块、函数)应该是可以扩展的，但是不可修改。就是对扩展开放，对修改关闭。通过构建抽象来隔离变化（譬如策略模式）。</p>
<p><strong>依赖倒转原则 DIP (Dependence Inversion Principle) </strong></p>
<p>抽象不应该依赖于细节，细节应该依赖于抽象；高层不应该依赖于低层，低层应该依赖于高层。即针对接口编程，不要针对实现编程。抽象的东西是最稳定 的，我们依赖的就是它的稳定。 编写的过程中应该考虑如何针对抽象编程，而不是针对细节编程，即程序中所有的依赖关系都终止于抽象类或者接口，那就是面向对象设计，反正就是过程化设计 了。 （终止指的是具体实现类的形态已经依赖于抽象类）</p>
<p><strong>里氏代换原则 LSP (Liskov Substitution Principle) 	</strong></p>
<p>子类型必须能够替代其父类型。即，在软件里面，把父类都替换成他的子类，程序行为没有发生变化。 有了里氏代换原则，才能使继承复用成为可能，只有当子类可以替换掉父类时，软件的功能不受影响，父类才能真正被复用，而子类也能在父类的基础上增加新的行 为。 有了里氏代换原则，才能使开放-封闭成为可能，正是由于子类型的可替换性才使得父类型的模块在无需修改的情况下扩展。</p>
<p><strong>接口隔离原则 ISP (Interface Segregation Principle) </strong></p>
<p>不应该强迫客户依赖于他们不用的方法。接口属于客户，不属于它所在的类层次结构。 	通俗的说法：不要强迫用户使用他们不使用的方法，否则这些客户就会面临由于不使用的这些方法的改变所带来的改变。</p>
<p>参考下图的设计，在这个设计里，取款、存款、转帐都使用一个通用界面接口，也就是说，每一个类都被强迫依赖了另两个类的接口方法，那么每个类有可能因为另外两个类的方法(跟自己无关)而被影响。拿取款来说，它根本不关心&ldquo;存款操作&rdquo;和&ldquo;转帐操作&rdquo;，可是它却要受到这两个方法的变化的影响。</p>
<p><a href="http://www.zvv.cn/blog/attachment.php?id=29" target="_blank"><img src="http://www.zvv.cn/blog/attachments/date_200904/thumb_4eac671ccaeac71f3de0002d3d1342f5.jpg" border="0" alt="大小: 24.6 K&#13;尺寸: 365 x 500&#13;浏览: 39 次&#13;点击打开新窗口浏览全图" width="365" height="500" /></a><br />
<br />
那么我们该如何解决这个问题呢？参考下图的设计，为每个类都单独设计专门的操作接口，使得它们只依赖于它们关系的方法，这样就不会互相影了！</p>
<p><a href="http://www.zvv.cn/blog/attachment.php?id=30" target="_blank"><img src="http://www.zvv.cn/blog/attachments/date_200904/thumb_bf9260a9b50bf4f2a8836590915a6c3c.jpg" border="0" alt="大小: 37.24 K&#13;尺寸: 314 x 500&#13;浏览: 31 次&#13;点击打开新窗口浏览全图" width="314" height="500" /></a><br />
<br />
实现方法：1、使用委托分离接口；2、使用多重继承分离接口</p>
<p><strong>迪米特原则 LoD(Law of Demeter)、LKP(Least Knowledge Principle) </strong></p>
<p>如果两个类彼此间不直接通信，那么这两个类就不应当发生直接的相互作用。如果其中一个类要调用另一个类的某个方法的话，可以通过第三方转发这个调用。 强调：在类的结构设计上，每一个类都应该尽量降低成员的访问权限；类之间的耦合越弱，越利于复用，一个处于弱耦合的类被修改，不会对有关系的类造成波及。</p>
<p><strong>合成/聚合复用原则 CARP (Composite/Aggregate Reuse Principle) </strong></p>
<p>在一个新的对象里面使用一些已有的对象，使之成为新对象的一部分。新对象通过向这些对象的委派达到复用已有功能的目的。</p>
<p><u>参考资料：<br />
http://www.blogjava.net/totobacoo/articles/138227.html<br />
http://www.cnblogs.com/feipeng/archive/2007/03/02/661840.html</u></p>]]></description>
			<link>http://www.zvv.cn/blog/show-102-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-1-1.html">原创丨PHP笔记</category>
			<pubDate>2009-03-30 14:06</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-101-1.html</guid>
			<title>使用NetBeans + Xdebug调试PHP程序[总结]</title>
			<author>zwws</author>
			<description><![CDATA[<p><strong>转载请注明出处: http://www.zvv.cn/blog/show-101-1.html</strong></p>
<p>　　前些天发现通过Notepad++的DBGP插件结合PHP的xdebug扩展可以实现PHP文件调试，同时，介绍说包含了单步调试、监视变量还有跨 文件调试。按照网络上的资料配置好调试环境后实际试用了发现功能较为简陋，单文件调试还可，如果是跨文件调试项目就不那么舒服了，试用过程中因为DBGP 插件也存在许多缺陷，烦恼不断，经常性地stack overflow，很是遗憾。后来想想Np++只是Editor，不要对它强求过多，插件的版本也比较低，存在许多BUG也是可以理解的，等它慢慢完善再 说吧，开源社区的力量可是很强大的，^^。<br />
昨晚在坛里某位同志的博文里再次见到了NetBeans这个熟悉的字眼（之前选开发环境的时候因为NB 非常强大，功能设置很人性化，界面非常友好，又有非常强的自动完成功能，都差不多就要定它了，可是因为当时不懂有xdebug，所以没搞懂怎么调试，就继 续用着EP Ctrl+B&ldquo;调试&rdquo;程序了），就用加上&ldquo;xdebug&rdquo;google了一下发现NB调试功能就是通过其实现的，而且功能齐全，评价不错，哈哈，大大的惊 喜，因为太晚了怕影响舍友休息，就决定次日来搞掂它。<br />
&hellip;&hellip;</p>
<p>　　今天和MM溜达回来后，折腾一番，现将配置过程整理如下：</p>
<p><em>详见全文</em></p><br /><br /><a href="http://www.zvv.cn/blog/show-101-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.zvv.cn/blog/show-101-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-1-1.html">原创丨PHP笔记</category>
			<pubDate>2009-03-29 00:23</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-100-1.html</guid>
			<title>中文字符编码备忘(GB2312、GBK、GB18030)</title>
			<author>zwws</author>
			<description><![CDATA[<p>From: http://www.ibm.com/developerworks/cn/java/jsp_dbcsz/</p>
<p>GB2312-80 是在国内计算机汉字信息技术发展初始阶段制定的，其中包含了大部分常用的一、二级汉字，和 9 区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集，这也是最基本的中文字符集。其编码范围是高位0xa1－0xfe，低位也是 0xa1-0xfe；汉字从 0xb0a1 开始，结束于 0xf7fe；</p>
<p>GBK 是 GB2312-80 的扩展，是向上兼容的。它包含了 20902 个汉字，其编码范围是 0x8140-0xfefe，剔除高位 0x80 的字位。其所有字符都可以一对一映射到 Unicode 2.0，也就是说 JAVA 实际上提供了 GBK 字符集的支持。这是现阶段 Windows 和其它一些中文操作系统的缺省字符集，但并不是所有的国际化软件都支持该字符集，感觉是他们并不完全知道 GBK 是怎么回事。值得注意的是它不是国家标准，而只是规范。随着 GB18030-2000国标的发布，它将在不久的将来完成它的历史使命。</p>
<p>GB18030-2000(GBK2K) 在 GBK 的基础上进一步扩展了汉字，增加了藏、蒙等少数民族的字形。GBK2K 从根本上解决了字位不够，字形不足的问题。它有几个特点，</p>
<ul>
    <li>它并没有确定所有的字形，只是规定了编码范围，留待以后扩充。</li>
    <li>编码是变长的，其二字节部分与 GBK 兼容；四字节部分是扩充的字形、字位，其编码范围是首字节 0x81-0xfe、二字节0x30-0x39、三字节 0x81-0xfe、四字节0x30-0x39。</li>
    <li>它的推广是分阶段的，首先要求实现的是能够完全映射到 Unicode 3.0 标准的所有字形。</li>
    <li>它是国家标准，是强制性的。</li>
</ul>]]></description>
			<link>http://www.zvv.cn/blog/show-100-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-2-1.html">转载丨Web相关</category>
			<pubDate>2008-09-24 17:09</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-99-1.html</guid>
			<title>Windows Vista 学习资料及工具</title>
			<author>zwws</author>
			<description><![CDATA[<p><a href="http://blogs.itecn.net/blogs/winvista/default.aspx">Vista 博客</a><br />
微软MVP专家盆盆的博客，均为原创文章，讲解细微深入易懂。</p>
<p><a href="http://www.kztechs.com">System Repair Engineer</a><br />
系统维护辅助工具，支持Windows 98 or later<br />
(Also Support Windows Vista)</p>]]></description>
			<link>http://www.zvv.cn/blog/show-99-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-6-1.html">共享丨实用技巧</category>
			<pubDate>2008-09-14 22:00</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-98-1.html</guid>
			<title>Php ini_set ini_get可操作配置参数列表</title>
			<author>zwws</author>
			<description><![CDATA[<p>为了使自己的程序在不同的平台中拥有更好的兼容性，很多时候我们都要获取当前Php的运行环境参数。比如我们常用到的：获取 magic_quotes_gpc状态，来决定当表单提交时我们是否转义(addslashes)数据；设定max_execution_time来延长 程序的执行时间；设定error_reporting使自己的项目在开发与运营阶段切换；设定memory_limit加大内存等等&hellip;<br />
<br />
<em>详见全文</em></p><br /><br /><a href="http://www.zvv.cn/blog/show-98-1.html" target="_blank">阅读全文</a><br /><br />]]></description>
			<link>http://www.zvv.cn/blog/show-98-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-2-1.html">转载丨Web相关</category>
			<pubDate>2008-08-15 16:49</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-97-1.html</guid>
			<title>C语言中字符数组的赋值</title>
			<author>zwws</author>
			<description><![CDATA[<p><strong>char *p = &quot;abcd&quot;</strong><br />
<br />
&quot;abcd&quot;是在进程运行的内存中存储的,语句执行时,动态分配了内存空间(4字节,根据系统的寻址位数来确定)给变量p使用,并将&quot;abcd&quot;所在的内存地址值放到p的内存中<br />
<br />
<strong>char p = 'a'</strong><br />
<br />
也是类似的过程不过p分配的是一个byte的空间,并被赋于了'a'的asc码值(56?)<br />
<br />
<strong>char p[20] = &quot;abc&quot;</strong><br />
<br />
试图将一个地址值放入在p=p[0]的byte空间内..结果当然不行<br />
<strong><br />
char p[20]={'a','b','c'}</strong><br />
<br />
这个应该是ok的</p>]]></description>
			<link>http://www.zvv.cn/blog/show-97-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-8-1.html">笔记丨升本复习</category>
			<pubDate>2008-08-14 20:40</pubDate>
		</item>
		<item>
			<guid>http://www.zvv.cn/blog/show-96-1.html</guid>
			<title>资料备忘，保持更新。</title>
			<author>zwws</author>
			<description><![CDATA[<p>MySQL服务器错误号参考<br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html">http://dev.mysql.com/doc/refman/5.0/en/error-messages-server.html</a></p>
<p>简明 XHTML 1.0 参考手册<br />
<a href="http://lamp.linux.gov.cn/WebStandard/short_xhtml_10_ref.html">http://lamp.linux.gov.cn/WebStandard/short_xhtml_10_ref.html</a></p>
<p>CGI1.1参考<br />
<a href="http://hoohoo.ncsa.uiuc.edu/cgi/env.html">http://hoohoo.ncsa.uiuc.edu/cgi/env.html</a></p>
<p>Apache手册<br />
<a href="http://lamp.linux.gov.cn/Apache/ApacheMenu/">http://lamp.linux.gov.cn/Apache/ApacheMenu/</a></p>]]></description>
			<link>http://www.zvv.cn/blog/show-96-1.html</link>
			<category domain="http://www.zvv.cn/blog/category-1-1.html">原创丨PHP笔记</category>
			<pubDate>2008-08-13 22:08</pubDate>
		</item>
	</channel>
</rss>

