Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Поиск строки в файле
Форумы портала PHP.SU » » Хранение данных, их вывод и обработка » Поиск строки в файле

Страниц (1): [1]
 

1. improbable - 12 Мая, 2012 - 20:47:33 - перейти к сообщению
Честно искал, может плохо, но не нашел.

Есть большой (около 1Мб) текстовый файл, содержащий строки вида

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. ...
  3. value=anothervalue
  4. ...
  5.  


Value и anothervalue больше нигде в файле не повторяются, причем длина value - константа, а у anothervalue - постоянно колеблится.

Прошу помочь с написанием скрипта. Я знаю, что он в пару строк, поэтому, если не трудно, помогите, пожалуйста...) Закатив глазки
2. EuGen - 12 Мая, 2012 - 21:20:45 - перейти к сообщению
Примерно так:
PHP:
скопировать код в буфер обмена
  1. $sValue = 'test';
  2. $sFile  = '/path/to/file';
  3. if(preg_match('/^(.*?)\='.preg_quote($sValue).'$/sm', file_get_contents($sFile), $rgMatches))
  4. {
  5.    //var_dump($rgMatches);
  6. }

- для ~1Mb допустимо.
3. improbable - 12 Мая, 2012 - 21:47:56 - перейти к сообщению
Черт, долго думал как выразиться, а не написал. Мне нужен поиск строки в файле по значению из этой строки. Или это то и есть?

Тогда что такое

EuGen пишет:
'$/sm'
?

А
? Ведь переменная не задана
4. EuGen - 12 Мая, 2012 - 22:16:19 - перейти к сообщению
improbable
То и есть. Почитайте, что значат символы "^" и "$" в регулярных выражениях, а так же про модификаторы s и m.
обращение к $rgMatches происходит внутри блока if, определяется же она при вызове preg_match, так как та возвращает третий параметр по ссылке.
Словом, прочтите про конструкции и функции, использованные в примере.

 

Powered by ExBB FM 1.0 RC1