设为首页 收藏本站
查看: 992|回复: 0

[经验分享] php cli命令行模式下的使用笔记

[复制链接]

尚未签到

发表于 2015-8-23 15:43:24 | 显示全部楼层 |阅读模式
  php cli命令行模式是WIN下的一个SHELL,不需要APACHE的支持就能执行PHP脚本的脚本,并且是持续执行的。这些特点很容易利用来快速测试PHP脚本。今天就特意找来一些资料,整理了一下,权当复习。
  如果配置了环境变量,则在命令行下输入如下命令 php /?就可以看到如下帮助了。中文部分是我给出的一些注释
  Usage: php [options] [-f] <file> [--] [args...]
       php [options] -r <code> [--] [args...]直接执行代码
       php [options] [-B <begin_code>] -R <code> [-E <end_code>] [--]

  [args...]
       php [options] [-B <begin_code>] -F <file> [-E <end_code>] [--]
  [args...]
       php [options] -- [args...]
       php [options] -a
  -a               Run interactively交互运行
  -c <path>|<file> Look for php.ini file in this directory在这个目录寻找php.ini文件
  -n               No php.ini file will be used不使用php.ini文件
  -d foo[=bar]     Define INI entry foo with value 'bar'
  -e               Generate extended information for debugger/profiler
  -f <file>        Parse and execute <file>.
  -h               This help
  -i               PHP information类似phpinfo()函数
  -l               Syntax check only (lint)
  -m               Show compiled in modules
  -r <code>        Run PHP <code> without using script tags <?..?>直接运行代码。双引号包围,分号结尾
  -B <begin_code>  Run PHP <begin_code> before processing input lines
  -R <code>        Run PHP <code> for every input line
  -F <file>        Parse and execute <file> for every input line
  -E <end_code>    Run PHP <end_code> after processing all input lines
  -H               Hide any passed arguments from external tools.
  -s               Display colour syntax highlighted source.高亮显示代码
  -v               Version number版本信息
  -w               Display source with stripped comments and whitespace.去除注释和空白后显示源代码
  -z <file>        Load Zend extension <file>.加载ZEND扩展
  args...          Arguments passed to script. Use -- args when first
  argument
                   starts with - or script is read from stdin
  --ini            Show configuration file names
  --rf <name>      Show information about function <name>.显示一个函数的原型描述
  --rc <name>      Show information about class <name>.显示类的描述
  --re <name>      Show information about extension <name>.显示对扩展的描述
  --ri <name>      Show configuration for extension <name>.显示扩展配置信息
  需要注意的是CLI模式和CGI模式运行时用的PHP.INI并非同一套配置,需要单独配置。
  <?php
if(!defined("STDIN")) {
define("STDIN", fopen('php://stdin','r'));
}
//php5.2里面STDIN已经定义了
echo "Hello! What is your name (enter below):\n";
$strName = fread(STDIN, 80);
echo 'Hello ',$strName, "\n";
?>
  >php --rf print_r#查看函数
  输出
Function [ <internal:standard> function print_r ] {
  
  - Parameters [2] {
    Parameter #0 [ <required> $var ]
    Parameter #1 [ <optional> $return ]
  }
}
>php --re exif#查看扩展
  


DSC0000.gif DSC0001.gif exif扩展



1 Extension [ <persistent> extension #30 exif version 1.4 $Id: exif.c,v
2 1.173.2.5.
3 2.25 2008/03/12 17:33:14 iliaa Exp $ ] {
4   - Dependencies {
5     Dependency [ standard (Required) ]
6     Dependency [ mbstring (Required) ]
7   }
8   - INI {
9     Entry [ exif.encode_unicode <ALL> ]
10       Current = 'ISO-8859-15'
11     }
12     Entry [ exif.decode_unicode_motorola <ALL> ]
13       Current = 'UCS-2BE'
14     }
15     Entry [ exif.decode_unicode_intel <ALL> ]
16       Current = 'UCS-2LE'
17     }
18     Entry [ exif.encode_jis <ALL> ]
19       Current = ''
20     }
21     Entry [ exif.decode_jis_motorola <ALL> ]
22       Current = 'JIS'
23     }
24     Entry [ exif.decode_jis_intel <ALL> ]
25       Current = 'JIS'
26     }
27   }
28   - Constants [1] {
29     Constant [ integer EXIF_USE_MBSTRING ] { 1 }
30   }
31   - Functions {
32     Function [ <internal:exif> function exif_read_data ] {
33       - Parameters [4] {
34         Parameter #0 [ <required> $filename ]
35         Parameter #1 [ <optional> $sections_needed ]
36         Parameter #2 [ <optional> $sub_arrays ]
37         Parameter #3 [ <optional> $read_thumbnail ]
38       }
39     }
40     Function [ <internal:exif> function read_exif_data ] {
41       - Parameters [4] {
42         Parameter #0 [ <required> $filename ]
43         Parameter #1 [ <optional> $sections_needed ]
44         Parameter #2 [ <optional> $sub_arrays ]
45         Parameter #3 [ <optional> $read_thumbnail ]
46       }
47     }
48     Function [ <internal:exif> function exif_tagname ] {
49       - Parameters [1] {
50         Parameter #0 [ <required> $index ]
51       }
52     }
53     Function [ <internal:exif> function exif_thumbnail ] {
54       - Parameters [4] {
55         Parameter #0 [ <required> $filename ]
56         Parameter #1 [ <optional> &$width ]
57         Parameter #2 [ <optional> &$height ]
58         Parameter #3 [ <optional> &$imagetype ]
59       }
60     }
61     Function [ <internal:exif> function exif_imagetype ] {
62       - Parameters [1] {
63         Parameter #0 [ <required> $imagefile ]
64       }
65     }
66   }
67 }
68  
  
  Dependency [ mbstring (Required) ]
  注意:在这里我们看到了exif对mbstring的依赖关系。也就解释了APPSERV启动时弹出找不到mbstring.DLL的疑惑了。
  参数读取
echo $_SERVER["argv"][1]."\n";
D:\AppServ\php5>php 1.php>1.txt 重定向
  




1 <?php
2  $STDOUT = fopen('php://stdout', 'w');
3  fwrite($STDOUT,"Hello World");
4  fclose($STDOUT);
5  ?>



1 <?php
2  set_time_limit(0);
3  while(true){#持续运行
4 @fopen(time().".html","w");
5  sleep(6);
6 }
7  ?>
  
我特意写了个BAT文件,方便拖拽执行PHP脚本
  
  




@ECHO OFF
echo 把要执行的文件拖拽到这里就可以了,注意路径的配置
set PHP_BIN=php.exe
%PHP_BIN% -f %1
pause
  
  
把这个保存为"解析PHP文件.bat",如果创建了环境变量的话,放在任何一个目录都是可以运行的。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-103076-1-1.html 上篇帖子: PHP 杂谈《重构-改善既有代码的设计》之四 简化条件表达式 下篇帖子: 解决php无法上传大文件问题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表