使用phpED作为开发工具。当压缩后的PHP文件比较大时,要打开它是一件痛苦的事情。经常导致phpED罢工。而格式化之后的PHP文件,在打开时则没有问题。无奈之下,动手写了一个PHP代码批量格式化工具。在文件夹上点击右键,便能批量格式化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 / 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
@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 类型的文件,其内容为:
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 "
[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代码”的菜单项。
大功告成!