此问题在此处已有答案:
"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上运行。
有什么想法吗?如果有,谢谢!
1条答案
按热度按时间dba5bblo1#
也就是说没有找到
total size is
。大小写是否正确?比如Total是否大写?
strpos
区分大小写。stripos
不区分大小写。将
$keep_for_later
设置为高于取消链接线的值。