2016-05-05 18 views
0

У меня есть следующий PHP/HTML pagePHP функция обрезки не работает должным образом

<html> 
<head> 
    <title>DZ Prototype</title> 
<link rel="icon" type="img/ico" href="images/favicon.jpg"> 
<meta http-equiv="refresh" content="30"> 
</head> 
<body> 
<center> 
<h1>Welcome to DZ Prototype Testing Area!!</h1> 
</center> 
<p></p> 
<p></p> 
<p></p> 
<p style="text-align:center"><img src="https://diasp.eu/uploads/images/scaled_full_122e075ce77580c93020.jpeg" alt="It works!!"></p> 
<p></p> 
<p></p> 

<div align="center"> 
<?php 

$filename = "cowrie.txt"; 
$line = file($filename); 
echo $line[15]; 

if(file_exists($filename)){ 
echo "<h2>Read through file and</h2>"; 
} 
else{ 
echo "<h2>Upload not successful</h2>"; 
} 

echo trim($line[15]); 

if (trim($line[15]) == "Correctly Classified Instances 0 0 %") { 
    echo "<h2><font color='red'>Last entry is a Possible Malicious Login Attempt</h2>"; 
} else { 
    echo "<h2><font color='green'>Status Green</h2>"; 
} 

?> 
</div> 

</body> 
</html> 

Оказывается, что если условие на функции триммера не послушался. Я отлаживаю, печатая функцию обрезки в строке в текстовом файле на самой странице. На самом деле не знаю, чего мне не хватает.

Это текстовый файл

J48 pruned tree 
------------------ 

AttemptsOnIP <= 6: 0 (9.0) 
AttemptsOnIP > 6: 1 (20.0) 

Number of Leaves :  2 

Size of the tree : 3 



=== Error on test data === 

Correctly Classified Instances   0    0  % 
Incorrectly Classified Instances   1    100  % 
Kappa statistic       0  
Mean absolute error      1  
Root mean squared error     1  
Total Number of Instances    1  


=== Detailed Accuracy By Class === 

       TP Rate FP Rate Precision Recall F-Measure MCC  ROC Area PRC Area Class 
       0.000 0.000 0.000  0.000 0.000  0.000 ?   1.000  0 
       0.000 1.000 0.000  0.000 0.000  0.000 ?   ?   1 
Weighted Avg. 0.000 0.000 0.000  0.000 0.000  0.000 0.000  1.000  


=== Confusion Matrix === 

a b <-- classified as 
0 1 | a = 0 
0 0 | b = 1 

линия 15 должна быть точная линия условия, так что я не знаю, в чем проблема.

+0

Количество непечатаемых не то же самое в «распознаны экземпляров 0 0%», как и в текстовом файле ... если они не являются вкладками, и в этом случае ваш IF также потерпит неудачу. – Webomatik

+0

Да, они выглядят как вкладки для создания столбцов. 'trim()' только обрезает от начала и до конца. – AbraCadaver

+0

Если вы хотите заменить пробелы в строке, используйте 'preg_replace()', а не 'trim()'. – Barmar

ответ

2

trim делает именно то, что он должен делать. documentation говорит:

пробел пробела (или другие символы) от начала и конца строки.

пробельные различия между вашей строки и строки в файле находятся в средней строки, а не в начале или в конце.

Вы можете использовать preg_replace() для сжатия последовательностей пробелов до одного пробела.

if (preg_replace('/\s+/, ' ', $line[15]) == "Correctly Classified Instances 0 0 %") { 

Или вы могли бы использовать регулярное выражение, чтобы соответствовать линии:

if(preg_match('/Correctly Classified Instances\s+0\s+0\s+%/', $line[15]) { 
Смежные вопросы