使用phpED开发,使用phpCB作为代码格式化工作。当压缩后的PHP文件比较大时,要打开它是一件痛苦的事情。经常导致phpED罢工。无奈之下,动手写了一个PHP代码批量格式化工具。代码分享如下:
1. 新建一个名为 FormatPHP.bat 的文件。其内容如下:
View Code
@echo *****************************************************************
@echo *
@echo * PHP代码文件的路径:%1
@echo * 该路径下的所有 .PHP 和 .php 后缀的文件,其内容都将被格式化。
@echo *
@echo * 提示:格式化需要一定的时间!如果要取消,请将本窗口关掉。
@echo *
@echo * ————Create By 布衣卿相
@echo *
@echo *****************************************************************
@pause
@echo *
@echo * 格式化开始...
@echo *
@cd /D %1
@set BackupPath = %2
@if "%BackupPath%"=="" @set BackupPath=D:\MyFile\UltraEdit\backup\Date
@set phpCB = %3
@if "%phpCB%"=="" @set phpCB=D:\soft\phpCB.exe
@set a=%cd%t
@set des=%BackupPath%\%date:~0,4%\%date:~5,2%\%date:~8,2%\%time:~0,2%%time:~3,2%%time:~6,2%\%a:~0,1%\
@FOR /r %1 %%f IN (*) DO @call :FormatPHP1 %%f %des% %phpCB%
@echo *****************************************************************
@echo *
@echo * PHP格式化结束
@echo *
@echo *****************************************************************
pause
@goto :eof
:FormatPHP1
@set FileName=%1
@set des=%2
@set phpCB = %3
@if "%FileName:~-4,4%"==".php" @call :FormatPHP2 %FileName% %des% %phpCB%
@if "%FileName:~-4,4%"==".PHP" @call :FormatPHP2 %FileName% %des% %phpCB%
@goto :eof
:FormatPHP2
@set FileName=%1
@set FilePath=%2
@set phpCB = %3
@set FileName2=%FileName%t
@set FileBakup=%FilePath%%FileName2:~3,-1%
@echo F|xcopy "%FileName%" "%FileBakup%" /S /Y | echo off
@echo * 当前文件:%FileName%
@echo * 备份成功
@echo * 正在格式化...
@"%phpCB%" --equal-align-position 50 --padding-char-count 4 --space-after-if --space-after-switch --space-after-while --glue-amperscore --force-large-php-code-tag --align-equal-statements --comment-rendering-style PEAR --extra-padding-for-case-statement --glue-arrow --optimize-eol --one-true-brace --one-true-brace-function-declaration "%FileName%" > "%FileName%.phpFormatBak"
@move /Y "%FileName%.phpFormatBak" "%FileName%" | echo off
@echo * 格式化成功
@echo *
@goto :eof
2. 新建一个 reg 类型的文件,其内容为:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\FormatPHP]
@="格式化PHP代码"
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\FormatPHP\command]
@="D:\\MyFile\\UltraEdit\\save\\FormatPHP.bat %1 D:\\MyFile\\UltraEdit\\backup\\Date D:\\soft\\phpCB.exe"
其中,
D:\MyFile\UltraEdit\save\FormatPHP.bat 为第一步中所建立的bat文件的完整路径;
D:\MyFile\UltraEdit\backup\Date 是用于备份代码的文件夹;
D:\soft\phpCB.exe 是phpCB的完整路径。
以上三个参数应该按照实际情况修改。
执行上述 reg 文件后,在文件夹上点击鼠标右键,便为出现一个名为“格式化PHP代码”的菜单项。
大功告成!
睡个觉起来,VS2005的智能提示就坏掉了。一时间我如同被废去武功,无法行走江湖。于是打开万能的搜索引擎,得到了一个解决办法:
http://www.cnblogs.com/deodara/archive/2007/12/05/983777.html
本人比较懒,不想试用该文中的第一个方法;于是直接在cmd中执行:
执行完以后,才发现这个命令是将VS的使用环境设置为“未使用”。早知如此,还不如采用第一个办法,直接在VS中重置默认配置。
该文称重置默认配置的方法无效,可能是因为需要重启VS
在网络上发现一个SQL,用于查询连续号段。自己修改了下,将其思路整理清晰。测试SQL如下:
select 2014 code,'00000001' tel from dual union all
select 2014 code,'00000002' tel from dual union all
select 2014 code,'00000003' tel from dual union all
select 2014 code,'00000004' tel from dual union all
select 2014 code,'00000005' tel from dual union all
select 2014 code,'00000007' tel from dual union all
select 2014 code,'00000008' tel from dual union all
select 2014 code,'00000009' tel from dual union all
select 2013 code,'00000120' tel from dual union all
select 2013 code,'00000121' tel from dual union all
select 2013 code,'00000122' tel from dual union all
select 2013 code,'00000124' tel from dual union all
select 2013 code,'00000125' tel from dual
),
group_tempTable As(
Select a.*, a.tel - Rownum 分组
From (Select *
From tempTable
Order By code, tel) a
)
Select b.code, Min(b.tel) Start_Tel, Max(b.tel) End_Tel
From group_tempTable b
Group By b.code, b.分组
Order By b.code, b.分组
执行结果:
1 2013 00000120 00000122
2 2013 00000124 00000125
3 2014 00000001 00000005
4 2014 00000007 00000009
几个月前头脑发浑,把机器名由“south”修改为“southyj”。过了许久,才发现Oracle不能使用了。赶紧查原因。原来是Oracle在安装时,会根据机器名来生成目录,并且机器名也会写入到监听配置文件和连接配置文件中。在Oracle目录中搜索旧机器名“south”,把搜索出来的“south”统统替换成“southyj”;再打开oracle\product\10.2.0\db_1\NETWORK\ADMIN目录,把listener.ora和tnsnames.ora文件中的机器名也改正过来。于是世界又恢复了旧有的秩序。一切都很完美。
谁知我的发浑不只一次。今天要配置IIS,发现总是报错:
System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.Exception: ORA-12154: TNS: 无法解析指定的连接标识符
用PL/SQL Developer连接,发现可以正常访问。查看listener.ora文件,也没发现异常。这就奇了!
在cmd窗口中输入:
C:\Documents and Settings\Administrator>tnsping localhost
TNS Ping Utility for 32-bit Windows: Version 10.2.0.1.0 - Production on 14-12月-
2009 14:28:31Copyright (c) 1997, 2005, Oracle. All rights reserved.
已使用的参数文件:
C:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora已使用 EZCONNECT 适配器来解析别名
Attempting to contact (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=localhost))(ADDRE
SS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
OK (10 毫秒)
初看这个结果很正常。再看,
已使用的参数文件:
C:\oracle\product\10.2.0\client_1\network\admin\sqlnet.ora
“client_1”?我什么时候装过客户端?真的是头脑发浑了便会乱来。
于是从oracle\product\10.2.0\db_1\NETWORK\ADMIN目录下把listener.ora和tnsnames.ora复制到oracle\product\10.2.0\client_1\NETWORK\ADMIN目录中。世界总算又恢复了正常。
今天写了一个将数字金额转化为大写的函数。
功能:将任意长度的数字金额转化为大写。最低位为圆或角时,后面加“整”;为“分”时不加“整”。
说明:小数点后保留两位。超过两位的部分被截断。
代码:
测试SQL如下:
结果:
玖仟叁佰贰拾肆亿零贰佰玖拾叁万肆仟零贰拾肆圆贰角壹分
测试通过



