amy_888 发表于 2015-8-29 13:41:50

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

  在看这篇文章之间你需要将以下代码存为 *.reg 文件导入你的注册表,不过要记得将 D:""php5"" 修改为你的 PHP 路径
这样通过在PHP文件上点击右键,你的 PHP 程序就能以 CLI 模式运行了
你可以参看这里获得一些帮助:http://www.tblog.com.cn/manual/php/features.commandline.html
复制内容到剪贴板
  
@=”使用PHP运行(&R)”

@=”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) && strtoupper($args) == '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,只是因我比较喜欢而已
http://www.tblog.com.cn/wp-content/uploads/2008/09/txtcmd.thumbnail.jpg
  源程序点击这里下载
页: [1]
查看完整版本: PHP CLI 模式 (命令行模式的PHP)