无法解析未定义的变量(使用CURL和Linux)[duplicate]

r9f1avp5  于 2022-11-13  发布在  Linux
关注(0)|答案(1)|浏览(128)

此问题在此处已有答案

"Notice: Undefined variable", "Notice: Undefined index", "Warning: Undefined array key", and "Notice: Undefined offset" using PHP(29个答案)
上个月关门了。
我试图让一个脚本工作,这将被用作一个监控系统,但我得到了一个问题错误说:
注意:未定义的变量:保留以备后用第47行
但该变量设置在第39行。
你知道吗?
下面是我的php:

<?php
print_r($_FILES["file"]);
$file_name = $_FILES["file"]["tmp_name"];

$buffer_size = 4096;
$out_file_name = str_replace('gz', '', $file_name);

$file = gzopen($file_name, 'rb');
$out_file = fopen($out_file_name, 'wb');

if($file != false)
{
    while (!gzeof($file)){
        fwrite($out_file, gzread($file, $buffer_size));
    }
}
else{
    print("Attention problem file false");
}

fclose($out_file);
gzclose($file);

// $_FILES["file"]["name"]

if (unlink("C:\\tmplog\\".$_FILES["file"]["name"]. "/user.log")) {
    // file was successfully deleted
  } else {
    // there was a problem deleting the file
  }
  sleep(2);
  $find_str = 'total size is';
  $fp = @fopen($_FILES["file"]["tmp_name"], "r");
  if ($fp) {
      while (($line = fgets($fp,)) !== false) {
          if ( strpos($line, $find_str) !== false ) {
              $keep_for_later = $line;
          }
      }
      fclose($fp);
  }


print($keep_for_later);
if (!file_exists('C:\tmplog')) {
    mkdir('C:\tmplog', 0755, true);
}

if (!file_exists("C:\\tmplog\\".$_FILES["file"]["name"])) {
    mkdir("C:\\tmplog\\".$_FILES["file"]["name"], 0755, true);
}

$dir = "C:\\tmplog\\".$_FILES["file"]["name"];
file_put_contents($dir ."/user.log", $keep_for_later);



$array = array();
$value = preg_match("/(\d*,\d*|\d+)/",$keep_for_later, $array);
print_r($array);

if($array){
    $teste = $array[0];
    $testa = str_replace(',','', $teste);
    if(is_numeric($teste)){
        $teste = $testa;
    }
    
    
    if ($testa >0) {
        print("Succes: la taille du fichier est de: " .$array[0]);
    }
    else if ($testa == 0) {
        print("Error");
    }
    else{
        print("Warning: the size is: " .$array[0]);
    }
}
else
{

}

$dir = "C:\\tmplog\\".$_FILES["file"]["name"];
file_put_contents($dir ."/result.log", $array);

我从一个Curl命令中得到了这个文件:

curl -F 'file=@logbackup-rt.gz'  http://mylink/projet/index.php

它在Linux上运行。
有什么想法吗?如果有,谢谢!

dba5bblo

dba5bblo1#

也就是说没有找到total size is
大小写是否正确?比如Total是否大写?
strpos区分大小写。stripos不区分大小写。
$keep_for_later设置为高于取消链接线的值。

$keep_for_later = 'Not Found';
if (unlink("C:\\tmplog\\".$_FILES["file"]["name"]. "/user.log")) {

相关问题