加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码网 (https://www.900php.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

shell 脚本检查某目录下php文件语法

发布时间:2022-02-09 16:23:46 所属栏目:PHP教程 来源:互联网
导读:利用php的自带检查文件方法 php -l 来使用shell 批量检查某目录下的文件,每次写完脚本都要 php -l 一下,看看有没有发生低级的语法错误,(疏忽过导致事故),写了个简单的shell 脚本批量检查目录下的 php文件语法,代码如下: check_php_syntax.sh #!/bin/bash #
  利用php的自带检查文件方法 php -l 来使用shell 批量检查某目录下的文件,每次写完脚本都要 php -l 一下,看看有没有发生低级的语法错误,(疏忽过导致事故),写了个简单的shell 脚本批量检查目录下的 php文件语法,代码如下:
 
  check_php_syntax.sh
  
  #!/bin/bash
  # check php syntax  
  if [ $# -lt 1 ];then
      echo 'Usage: ' $0  'directory';
      exit
  fi
  if [ ! -d $1 ];then
      echo $1  'not a directory,please check!';
      exit
  fi
  directory=$1
  temp_file="/tmp/file$$"
  #echo $temp_file
  ls -R $directory | awk  '
      BEGIN{
          FS="n"     
          folder="'$directory'"
          logname="'$temp_file'"
      }
      {
          if($0~/.php$/){
              system("php -l " folder "/" $0  "   >>  " logname  " 2>&1")   
          }
          if($0~/:$/){
              folder=substr($1,1,length($1)-1)
          }
      }
  '
  if [ -e $temp_file ];then
      cat $temp_file | awk '
          BEGIN{
              error = 0
         }
          {
              if($0~/Parse/) {
                  error++  
                  errorfile[$0] = $0
              }    
          }
          END{
              print "错误文件:" error "个"
              if(length(errorfile)>0) print "错误行数:"
                  for (i in errorfile)
                      print i
          }
      '
  else
      echo "php file not found."
      exit;
  fi
  使用,例如,代码如下:
 
  ./check_php_syntax /home/liuzhichao/test/
 
  输出:
 
  错误文件:2个
 
  错误行数:
 
  PHP Parse error:  syntax error, unexpected T_VARIABLE in /home/liuzhichao/test/awktest/a.php on line 3
 
  PHP Parse error:  syntax error, unexpected T_STRING, expecting ')' in /home/liuzhichao/test/levelcity.php on line 19

(编辑:源码网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读