2014-11-21 2 views
0

Я загружаю общие файлы с php, я прочитал первую строку загруженного файла для проверки (что равно $line2).Сравнение строк всегда возвращает false

$line = file($target_file)[0]; 
$line2 = 'S01700006275696C642F697269732F6D61696E2E7372656343 '; 

echo $line; 
echo "<br>"; 
echo $line2;         

if($line === $line2){ 
    echo "<br>true"; 
}else{ 
    echo "<br>false";} 

Проверка моих выходов, я обнаружил Theres дополнительное пространство в $line (Хотя нет дополнительного пространства на файл), поэтому я добавил, что дополнительное пространство $ line2.

Проблема в том, что она всегда возвращает false. Я пробовал:

if($line == $line2) 

, а также

if(strcmp($line,$line2)==0) 

Очевидно, что я попытался удалить дополнительное пространство от $ line2

+1

Скопируйте и вставьте обе строки здесь. – slapyo

+2

Вы можете использовать накладку(), чтобы удалить дополнительное пространство –

+0

S01700006275696C642F697269732F6D61696E2E7372656343 S01700006275696C642F697269732F6D61696E2E7372656343 – Ching

ответ

1

Вы можете попробовать:

$line = file($target_file)[0]; 
$line2 = 'S01700006275696C642F697269732F6D61696E2E7372656343 '; 

echo $line; 
echo "<br>"; 
echo $line2;         

if(trim($line) === trim($line2)){ 
    echo "<br>true"; 
}else{ 
    echo "<br>false"; 
} 
0

Если вы хотите обнаружить, если одна строка просто содержит другой, правильный тест будет b e if (strcmp($line,$line2) !== false).

Если вы хотите, чтобы проверить равенство, игнорируя пробелы, а затем использовать if (trim($line) === trim($line2))

0

Вы уверены, что ваш дополнительный пробел действительно пространство?

В ручном вводе для file (link) он говорит:

Возвращает файл в массив. Каждый элемент массива соответствует строке в файле, а новая строка все еще прикреплена.

Вот почему ваше сравнение терпит неудачу.

Try чтение файла, как это:

$line = file($target_file, FILE_IGNORE_NEW_LINES)[0]; 

Это должно работать.

Смежные вопросы