проверьте, находится ли электронная почта в текстовом файле, используя PHP - PullRequest
1 голос
/ 19 февраля 2020

Я использую этот код, чтобы проверить, существует ли введенный адрес электронной почты в текстовом файле или нет

$handle = fopen("http://mywebsite/u.txt", "r");
if ($handle) {
    while (($line = fgets($handle)) !== false) {
        $line = preg_replace('/\s+/', ' ', $line);
        if($line=$email){
            echo "email existe";
        }
    }

    fclose($handle);
} else {
    // error opening the file.
}

вывод одинаков для ожидающих писем и не ожидающих сообщений в текстовом файле

электронная почта existeemail existeemail existe

текстовый файл содержит в качестве тестовой электронной почты

  • test@test.com
  • hello@world.com
  • test@t.com

, если я это сделал ==, условие не было введено, когда $ line = $ email

пытается с

echo $line." ".$email;

ВЫХОД

test@test.com test@test.comtest@test.com test@test.comtest@test.com test@test.com

Ответы [ 2 ]

2 голосов
/ 19 февраля 2020

Ваш код не выполнен по двум причинам.

1) if($line=$email) - это метод назначения и всегда будет ИСТИНА. Вы пытались использовать метод сравнения ==.

2) Вам необходимо использовать trim(), так как это позаботится о новых символах строки, которые будут включены в ваш файл. Это было обрисовано в общих чертах другим участником здесь, будучи Aynber . Престижность им.

Per:

"Возможно, вам придется обрезать () как строку, так и письмо, чтобы убедиться, что нет пробелов / новых строк - aynber" .

и

"положить var_dump ($ line); после вашего preg_replace после него по-прежнему будет пробел."

1 голос
/ 19 февраля 2020

Не знаю, правильно ли я вас понял, но здесь у вас немного другое решение проблемы

// File from http
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://example.com");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$handle = curl_exec($ch);
curl_close($ch);   

// or
$handle = file_get_contents("u.txt");
//or
$handle = "test@test.com \n hello@world.com";


$find = "hello@world.com";

if (strpos($handle, $find) > -1){ 
    echo "Found" ; 
} else{ 
    echo "Not Found"; 
} 

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...