Rumah  >  Artikel  >  pembangunan bahagian belakang  >  PHP CLI 模式 (命令行模式的PHP)

PHP CLI 模式 (命令行模式的PHP)

WBOY
WBOYasal
2016-06-23 14:29:50703semak imbas

在看这篇文章之间你需要将以下代码存为 *.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,只是因我比较喜欢而已

源程序点击这里下载

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn