2012-01-23 3 views
-2

У меня есть текстовый файл со следующими линиямиPHP Как найти строку начинающуюся со слова из текстового файла

Manifest-Version: 1.0
MIDlet-Vendor: Croco Гамез
MIDlet-Version: 1.0.0
MIDlet-1: Quan, /icon.png, CGTQ
MicroEdition-Configuration: CLDC-1.0
Создано-By: 1.4.2 (Sun Microsystems Inc.)
MIDlet-Icon:/значок. png
MIDlet-Name: Quan
MicroEdition-профиля: MIDP-2.0

Я хочу, чтобы найти строки начинаются с MIDlet-1 и удалить пункт из конца этой линии Пожалуйста, помогите мне

+0

Что вы подразумеваете под "удалить пункт"? Вы хотите удалить окончание строки CR/LF? – halfer

+0

Что я должен назвать «нисходящим словом» как? Пожалуйста, помогите –

+0

Я никогда не слышал, чтобы это называлось «нисходящим словом», но я ожидаю, что вы имеете в виду «возврат каретки» или «новая линия» :) – halfer

ответ

0

Read the file into lines, а затем использовать PHP preg_grep()

с регулярных выражений шаблон, как это:

/^MIDlet-1.*$/ 

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

Пример:

$lines = file ("file-to-read.txt"); 
$matchedLines = preg_grep ('/^MIDlet-1.*$/', $lines); 
$lines = array_diff ($lines, $matchedLines); 

// do something with lines which doesn't have your MIDlet data 
+0

Я хочу, чтобы echo MIDlet-1: Quan, /icon.png, CGTQ без нисходящего слова в конце, пожалуйста, помогите –

+0

Я отредактировал свой ответ, чтобы, надеюсь, решить вашу проблему. –

+0

Coud вы даете мне полный код? спасибо –

1

Проблема, как представляется, что функция file() включает в себя задний символ новой строки для каждой строки. Однако это только поведение по умолчанию, и мы можем поручить функции не включать их, используя специальный флаг FILE_IGNORE_NEW_LINES.

file('thefile.txt', FILE_IGNORE_NEW_LINES) 

Чтобы найти нужную строку, вы могли бы цикл по каждой из них и остановиться, обнаружив тот, который вы хотите или использовать другую функцию для поиска в массиве. Оба они уже были показаны Krister и Michael соответственно.

$lines = file('thefile.txt', FILE_IGNORE_NEW_LINES); 
$matched = preg_grep('/^MIDlet-1/', $lines); 
foreach ($matched as $line) { 
    echo $line; 
} 
Смежные вопросы