Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: найти повторение в файле
 
 автор: adminn   (23.08.2008 в 02:04)   письмо автору
 
 

есть забитый файл text.txt я хочу прочитать его и найти совпадения текста с $a и если совпадений нет то выполняется код, а если есть нечего не выполнять
<
$a = "956956";
$file= fopen("text.txt", "r");
while(!feof ($file)) {
$b = fgets($file, 3000);

как проверить $a и выполнить условие?

}

заранее спасибо.

  Ответить  
 
 автор: Николай2357   (23.08.2008 в 07:15)   письмо автору
 
   для: adminn   (23.08.2008 в 02:04)
 

<?
$b 
file_get_contents("text.txt");
if( 
strpos($a,$b) !== false )exit("а-я-яй!");

  Ответить  
 
 автор: Trianon   (23.08.2008 в 08:56)   письмо автору
 
   для: Николай2357   (23.08.2008 в 07:15)
 

а если файл большой?

  Ответить  
 
 автор: Николай2357   (23.08.2008 в 09:27)   письмо автору
 
   для: Trianon   (23.08.2008 в 08:56)
 

Тады ой.
Можно и построчно читать, вопрос не в этом был.

  Ответить  
 
 автор: Trianon   (23.08.2008 в 10:27)   письмо автору
 
   для: Николай2357   (23.08.2008 в 09:27)
 

Как сказать. Искомый фрагмент тоже может быть многострочным. Если этот термин вообще можно применять.

  Ответить  
 
 автор: Николай2357   (23.08.2008 в 12:34)   письмо автору
 
   для: Trianon   (23.08.2008 в 10:27)
 

Обожаю полемику, особенно с Вами, из нее зачастую рождаются твердые убеждения.
Автор, мне кажется, должен сам определиться, какой вариант использовать. Если файл известен, и он по определению маленький, file_get_contents() наверное предпочтительней, чем цикл. А что касается "построчного" (как, кстати, правильно, обычно так говорят?) чтения, так ведь искомый текст вроде целый...

  Ответить  
 
 автор: BinLaden   (23.08.2008 в 13:59)   письмо автору
 
   для: Николай2357   (23.08.2008 в 12:34)
 

> Обожаю полемику, особенно с Вами, из нее зачастую рождаются твердые убеждения.

В смысле Вы начинаете стоять на своём еще тверже?:) Нигде не говорилось какой текст. Допустим, он может содержать перенос строки - с чего этот вариант сразу откинули?

> if( strpos($a,$b) !== false )
Вы аргументы перепутали.

  Ответить  
 
 автор: Николай2357   (23.08.2008 в 14:54)   письмо автору
 
   для: BinLaden   (23.08.2008 в 13:59)
 

>В смысле Вы начинаете стоять на своём еще тверже?:)

Нет, просто не люблю недомолвок. Всегда хочется выяснить все до конца и утвердится во мнении. Задача №21 меня многому научила, спасибо и Вам.

>Допустим, он может содержать перенос строки - с чего этот вариант сразу откинули?

Как раз я ничего не откинул, мой вариант сработает. А вот как с большими файлами поступать, пока загадка. От того и полемика.

> if( strpos($a,$b) !== false )
>Вы аргументы перепутали.

Дико извиняюсь, из своего теста скопировал, а там у меня наоборот...
Буду внимательней.

  Ответить  
 
 автор: adminn   (24.08.2008 в 20:20)   письмо автору
 
   для: Николай2357   (23.08.2008 в 14:54)
 

не работает, помогите. файлы у меня маленькие , file_get_contents() устраивает вполне.

делаю так


$i = $_SERVER['REMOTE_ADDR']; 

$b = file_get_contents("text.txt");

if( strpos($i,$b) !== false )
{
echo "test";
}

на экран не чего не выводит , а вот если делаю так работает


$i = $_SERVER['REMOTE_ADDR']; 

if( strpos($i,$i) !== false )
{
echo "test";
}


получается проблемы в $b = file_get_contents()

  Ответить  
 
 автор: BinLaden   (24.08.2008 в 23:12)   письмо автору
 
   для: adminn   (24.08.2008 в 20:20)
 

if( strpos($b, $i) !== false )

  Ответить  
 
 автор: adminn   (25.08.2008 в 00:26)   письмо автору
 
   для: BinLaden   (24.08.2008 в 23:12)
 

вме нужно не просто сравнить 2 переменные , а нойти совподение в файле
пробовал preg_match() но он если даже видет хоть один совпадающий символ то уже считает , что вхождение есть

  Ответить  
 
 автор: adminn   (25.08.2008 в 01:03)   письмо автору
 
   для: adminn   (25.08.2008 в 00:26)
 

так и не решил)))) помогаем)))) перепробовал кучу выражений и функций

  Ответить  
 
 автор: BinLaden   (25.08.2008 в 02:29)   письмо автору
 
   для: adminn   (25.08.2008 в 01:03)
 

1. Я ничего Вам не предлагал, а просто указал на ошибку.
2. Значит Вы неправильно пользуетесь preg_match()

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования