2015-05-01 2 views
0

Пользователь вводит текст в поле, и эта строка сравнивается с текстовым файлом по строкам для соответствия. Если найдено совпадение, сделайте x else z.Как узнать, соответствует ли строка точной строке в текстовом файле?

Это должно быть достаточно простым, но я не знаю, как это сделать в php. Я нашел частичный ответ, но я не собираюсь его закончить.

f = open('filename', 'r') 
lines = f.readlines() 

Как я могу преобразовать этот код в php и выполнить код?

+0

Ваши переменные не имеют '' $? –

+0

А вы имели в виду 'fopen()'? – adeneo

+1

Я не думаю, что это PHP @adeneo –

ответ

0

Это должно работать для вас:

Здесь я прочитал файл в массив с file(), где каждая строка представляет один элемент массива. Там я игнорирую новые строковые символы в конце каждой строки, а также пропускаю пустые строки.

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

<?php 

    $lines = file("yourFile.txt", FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); 

    if(in_array($line, $lines)) { 
     echo "match do something"; 
    } else { 
     echo "no match do something else"; 
    } 

?> 
0

Вы можете использовать preg_match с . и ^$ не соответствует line breaks, т.е .:

$file = file_get_contents("file.txt"); //read myfile.txt contents to var $file 
$match = "match 321"; 
    if (preg_match("/$match/", $file)){ //check if any full line contains "match 321" 
     echo "File contains $match"; 
    }else{ 
     echo "File doesn't contain $match"; 
    } 
+0

'strpos()' не гарантирует, что это полное соответствие линии, поскольку, по-видимому, OP хочет: http://stackoverflow.com/questions/29995583/how-can-i-find-out-if-a-line -is-an-exact-match-to-a-line-in-a-text-file/29995648 # comment48110754_29995583 – Rizier123

+0

Привет @ Rizier123, я уже обновил свой ответ, tks в любом случае :). Ваш ответ читает строки файла в массив, но не зацикливает их, он в основном такой же, как чтение всего файла в один var и использование strpos. –

+0

Нет, это не одно и то же, так как моя строка должна быть точным совпадением с строкой в ​​файле. С 'strpos()' он также может быть только частичным совпадением и может переходить через 2 строки. – Rizier123

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