在看這篇文章之間你需要將以下代碼存為 *.reg 檔案匯入你的註冊表,不過要記得將 D:""php5"" 修改為你的 PHP 路徑
這樣通過在PHP檔案上點擊右鍵,你的 PHP 程式就能以 CLI [Command Line Interface] 模式運行了
你可以參看這裡獲得一些協助:http://www.tblog.com.cn/manual/php/features.commandline.html
複製內容到剪貼簿
[HKEY_CLASSES_ROOT"*"shell"使用PHP運行(&R)]
@=”使用PHP運行(&R)”
[HKEY_CLASSES_ROOT"*"shell"使用PHP運行(&R)"command]
@=”cmd /K D:""php5""php.exe "”%1"”"
如果你不想添加註冊表項目,你也可以在 cmd / shell 下輸入以下命令來運行:
複製內容到剪貼簿
$ php textcmd.php
在附件裡你可以看到這段程式的代碼,相信如果你會 PHP 的話,你已經能夠根據這個程式擴充他來玩玩了
核心部分:
我們是通過 fgets(STDIN) 來擷取到鍵盤輸入的,至於為什麼以及更多更詳細的東西,大家就看上面給出的手冊地址應該就能明白了
不禁有朋友要問,這個東西要來有什麼用?
其實也沒多大用,學習,好玩而已
但在工作中也有需要用到的時候,例如:清理項目目錄中的無效檔案,搜集項目中的資源…等等
在我開發的程式中,我還用他來更新程式的版本號碼,就像下面的代碼:
//以下代碼是在 textcmd.php Text_Command 中的一個方法
//Text_Command::_update($args)
protected function _update ( $args )
{
if ( isset ( $args [ 0 ]) && strtoupper ( $args [ 0 ]) == ' version ' ) {
$files = scan_files ( dirname ( dirname ( __FILE__ )) . ' /lib ' ) ;
replace_deep (
$files ,
array (
' $version$ ' ,
' $update_time$ ' ,
) ,
array (
' v1.0.0 ' ,
date ( ' Y-m-d ' ) ,
)
) ;
return ' Project doc comments update complete ' ;
}
}
//以下是我寫的兩個函數,以配合檔案掃描及替換
function scan_files ( $dir )
{
$basepath = $dir ;
$dirs = scandir ( $dir ) ;
$files = array () ;
foreach ( $dirs as $dir ) {
if ( substr ( $dir , 0 , 1 ) == ' . ' || $dir == ' Zend ' )
continue ;
if ( is_dir ( $basepath . ' / ' . $dir )) {
$files [] = scan_files ( $basepath . ' / ' . $dir ) ;
} elseif ( is_file ( $basepath . ' / ' . $dir )) {
$files [] = $basepath . ' / ' . $dir ;
}
}
return $files ;
}
function replace_deep ( array $files , $tag , $value )
{
foreach ( $files as $file ) {
if ( is_array ( $file )) {
replace_deep ( $file , $tag , $value ) ;
} elseif ( is_readable ( $file )) {
$content = file_get_contents ( $file ) ;
$content = str_replace ( $tag , $value , $content ) ;
file_put_contents ( $file , $content ) ;
}
}
}
雖然用其他的程式也能實現同樣的工作,但我還是選擇了用 PHP,只是因我比較喜歡而已
來源程式點擊這裡下載