Привет, У меня возникла проблема с фильтрацией определенных строк из текстового файла. Когда я запускаю программу, создается текстовый файл с сообщением об ошибках, связанных с проверкой файла. Однако мне нужно игнорировать некоторые ошибки генерируются, в основном, те, с импортированными или не найден в пути поиска в описании ошибки, как те ниже:Отфильтровать определенные строки из текстового файла с PHP
static-state.y:8: error: module "inet-types" not found in search path
mpls-static-state.y:11: error: module "y-types" not found in search path
mpls-static-state.y:11: warning: imported module y-types not used
mpls-static-state.y:15: error: module "context-state" not found in search path
mpls-static-state.y:15: warning: imported module context-state not used
mpls-static-state.y:19: error: module "contexts" not found in search path
Там будут и другие сообщения об ошибках, которые мне нужны, так что я могу 't полностью очистить файл, также я читаю текстовый файл и отображаю эти ошибки на веб-странице. Я прочитал из этого файла:
if(file_exists("stderr.txt")){
$fh = fopen("stderr.txt", 'r');
$errorOutput = fread($fh, 25000);
}
Затем я использую $ errorOutput для хранения того, что находится в текстовом файле. Какой был бы лучший способ фильтрации строк ошибок, которые я не хочу отключать? Старался создать регулярное выражение, но не получив удачи в его работе, кто-нибудь может помочь?
Командная строка да или нет? Платформа? Критерий выбора? В окне linux я бы просто использовал _grep_. – syck
Привет, это работает на windows, текстовый файл создается из запуска сценария bash. PHP используется для чтения текстового файла из того места, где оно было создано. Мне нужно удалить сообщения об ошибках, которые мне не нужны из текстового файла, используя PHP, сохраняя те, которые мне нужны. – olliejjc16
Вы можете использовать якоря ('^ $'), с модификатором 'm', и это сломает поиск по каждой строке. Затем просто используйте 'preg_replace' с регулярным выражением, которое соответствует строкам, которые вам не нужны. В качестве альтернативы' grep' с флагом 'v' игнорирует найденные совпадения. – chris85