Я считаю, что это будет работать.
Я использую file_get_contents, чтобы загрузить файл как одну строку, и использую strpos для поиска "id".
Я также включаю версию preg_match, так как strpos будет соответствовать "lid" для "id""который preg_match не будет.
$id = $_POST['id'];
$tudof = "\n #QTP ".$qtp." ID: ".$id;
echo "\n";
$str = file_get_contents('../../../ids.txt');
$searchString = "id";
if(strpos($str, $searchString) !==false) {
// Found it! Break won't work.
// If you want to stop all php code use exit;
} else {
// Add the new name
// Not sure what you do here but use file_put_contents
file_put_contents('../../../ids.txt', $str);
}
// Preg_match
if(preg_match("/\b " . $str ."\b/", $searchString)) {