使用phpED开发,使用phpCB作为代码格式化工作。当压缩后的PHP文件比较大时,要打开它是一件痛苦的事情。经常导致phpED罢工。无奈之下,动手写了一个PHP代码批量格式化工具。代码分享如下:

 

1. 新建一个名为 FormatPHP.bat 的文件。其内容如下:

 

View Code
@TITLE 格式化PHP代码 路径:%1
@echo *****************************************************************
@echo *
@echo * PHP代码文件的路径:%1 
@echo * 该路径下的所有 .PHP 和 .php 后缀的文件,其内容都将被格式化。
@echo *
@echo * 提示:格式化需要一定的时间!如果要取消,请将本窗口关掉。
@echo *
@echo *                  ————Create By 布衣卿相
@echo *
@echo *****************************************************************
@
pause
@echo *
@echo * 格式化开始...
@echo *

@
cd /%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 /%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%" //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 /"%FileName%.phpFormatBak" "%FileName%" | echo off
@echo *      格式化成功
@echo *
@
goto :eof

 

2. 新建一个 reg 类型的文件,其内容为:

Windows Registry Editor Version 5.00

[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代码”的菜单项。

 

大功告成!

posted @ 2011-02-28 20:10 布衣卿相 阅读(666) 评论(0) 编辑

睡个觉起来,VS2005的智能提示就坏掉了。一时间我如同被废去武功,无法行走江湖。于是打开万能的搜索引擎,得到了一个解决办法:

http://www.cnblogs.com/deodara/archive/2007/12/05/983777.html

本人比较懒,不想试用该文中的第一个方法;于是直接在cmd中执行:

 

C:\"Program Files"\"microsoft visual studio 8"\common7\ide\devenv.exe /setup /resetuserdata /resetsettings

 

 

执行完以后,才发现这个命令是将VS的使用环境设置为“未使用”。早知如此,还不如采用第一个办法,直接在VS中重置默认配置。

 

该文称重置默认配置的方法无效,可能是因为需要重启VS

posted @ 2010-10-19 09:44 布衣卿相 阅读(406) 评论(0) 编辑

在网络上发现一个SQL,用于查询连续号段。自己修改了下,将其思路整理清晰。测试SQL如下:

With tempTable As(
  
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.分组

 

执行结果:

     CODE    START_TEL    END_TEL
1    2013    00000120    00000122
2    2013    00000124    00000125
3    2014    00000001    00000005
4    2014    00000007    00000009
posted @ 2010-09-14 15:17 布衣卿相 阅读(176) 评论(1) 编辑

几个月前头脑发浑,把机器名由“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:31

Copyright (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目录中。世界总算又恢复了正常。

posted @ 2009-12-14 14:38 布衣卿相 阅读(1410) 评论(4) 编辑

今天写了一个将数字金额转化为大写的函数。

功能:将任意长度的数字金额转化为大写。最低位为圆或角时,后面加“整”;为“分”时不加“整”。

说明:小数点后保留两位。超过两位的部分被截断。

代码: 

PL/SQL 代码

测试SQL如下:

Select Money2Chinese(0932402934024.213From dual;

结果:

玖仟叁佰贰拾肆亿零贰佰玖拾叁万肆仟零贰拾肆圆贰角壹分

测试通过

posted @ 2009-11-11 17:16 布衣卿相 阅读(156) 评论(0) 编辑
摘要: [代码]测试结果为: COUNT(A) COUNT(1) COUNT(*)---------- ---------- ---------- 0 3 3可见:① 一般情况下,Count函数对于Null值是不作统计的;② COUNT(*)等同于COUNT(1),它会对Null值作统计。所以,在使用Group By时,尽量使用[代码]而不要使用[代码]否则对于Null值的统计结果...阅读全文
posted @ 2009-11-09 11:49 布衣卿相 阅读(71) 评论(0) 编辑