• PHP CLI与CGI 和 PHP日志


    PHP错误跟踪,错误提示有助于,定位错误的位置,从而进行调试。与错误显示有关的命令有如下:
    1、直接显示

    error_reporting=ALL(错误显示级别设置)
    display_errors=On|Of (是否显示错误)

    2、把错误存入日志文件里

    log_errors=On (开启日志显示)
    error_log=D:/www/error.log (错误日志存放地址)

    如果需要局部设置显示的话,可以使用
    ini_set和int_get,设置和获取配置。

    3、CLI与CGI的区别
        1)、CLI不会输出任何头信息。CGI可以通过配置取消header信息。 CLI通过使用参数-q或--no-header来向后兼容,使得可以使用旧的CGI
        2)、CLI不会把当前目录改为执行脚本的目录。
        3)、CLI不会输出HTML错误信息,只输出纯文本错误信息。
        4)、CLI会强制覆盖php.ini里的一些配置,覆盖操作是发生在所有的设置文件(php.ini)解析之后,所以可以在运行时修改这些配置,当然也没有什么意义。

    html_errors        FALSE
    implicit_flush     TRUE
    max_execution_time  0
    register_argc_argv  TRUE

        5)、CLI有一些预设的常量:STDIN,STDOUT,STDERR
            例子:
            输入和输入流,可以像文件一样使用fopen,fgets,fwrite进行操作。
           

            <?php
            fwrite(STDOUT, “Please enter your name\n”);
            $name = fgets(STDIN);
            fwrite(STDOUT, "Welcome $name");
            ?>
    <?php set_error_handler("ErrorHandler"); function ErrorHandler($errno, $errstr, $errfile, $errline) { fwrite(STDERR,"$errstr in $errfile on $errline\n"); } $fp = fopen("demo.txt","r"); $str = fread($fp,filesize("demo.txt")); fclose($fp); fwrite(STDOUT, "Task completed successfully!"); ?>
     Tip: php error.php 2> error.log 其中error.php里所有使用fwrite(STDERR, '...')的语句,产生的输出都会录入到error.log而不会显示到标准输出中去。注意1 =》STDOUT

        参考资源:http://php.net/manual/zh/features.commandline.php
       
       

  • 相关阅读:
    cf 1155 d 最大区间和(变形 区间*x)
    俄罗斯方块的形状暴力
    cf 1160 E dp 组合数 思维
    cf 1110d dp(题目特殊性质)
    cf 1114d 区间dp 0,1标记左右
    poj 1426 bfs
    poj 1679 最小生成树是否唯一
    cf 1106e dp
    【PAT顶级】1002 Business (35分)(0/1背包,DP)
    【PAT顶级】1001 Battle Over Cities
  • 原文地址:https://www.cnblogs.com/mengzhongshi/p/2795885.html
Copyright © 2020-2023  润新知