|
|
|
| есть забитый файл text.txt я хочу прочитать его и найти совпадения текста с $a и если совпадений нет то выполняется код, а если есть нечего не выполнять
<
$a = "956956";
$file= fopen("text.txt", "r");
while(!feof ($file)) {
$b = fgets($file, 3000);
как проверить $a и выполнить условие?
}
заранее спасибо. | |
|
|
|
|
|
|
|
для: adminn
(23.08.2008 в 02:04)
| |
<?
$b = file_get_contents("text.txt");
if( strpos($a,$b) !== false )exit("а-я-яй!");
|
| |
|
|
|
|
|
|
|
для: Николай2357
(23.08.2008 в 07:15)
| | а если файл большой? | |
|
|
|
|
|
|
|
для: Trianon
(23.08.2008 в 08:56)
| | Тады ой.
Можно и построчно читать, вопрос не в этом был. | |
|
|
|
|
|
|
|
для: Николай2357
(23.08.2008 в 09:27)
| | Как сказать. Искомый фрагмент тоже может быть многострочным. Если этот термин вообще можно применять. | |
|
|
|
|
|
|
|
для: Trianon
(23.08.2008 в 10:27)
| | Обожаю полемику, особенно с Вами, из нее зачастую рождаются твердые убеждения.
Автор, мне кажется, должен сам определиться, какой вариант использовать. Если файл известен, и он по определению маленький, file_get_contents() наверное предпочтительней, чем цикл. А что касается "построчного" (как, кстати, правильно, обычно так говорят?) чтения, так ведь искомый текст вроде целый... | |
|
|
|
|
|
|
|
для: Николай2357
(23.08.2008 в 12:34)
| | > Обожаю полемику, особенно с Вами, из нее зачастую рождаются твердые убеждения.
В смысле Вы начинаете стоять на своём еще тверже?:) Нигде не говорилось какой текст. Допустим, он может содержать перенос строки - с чего этот вариант сразу откинули?
> if( strpos($a,$b) !== false )
Вы аргументы перепутали. | |
|
|
|
|
|
|
|
для: BinLaden
(23.08.2008 в 13:59)
| | >В смысле Вы начинаете стоять на своём еще тверже?:)
Нет, просто не люблю недомолвок. Всегда хочется выяснить все до конца и утвердится во мнении. Задача №21 меня многому научила, спасибо и Вам.
>Допустим, он может содержать перенос строки - с чего этот вариант сразу откинули?
Как раз я ничего не откинул, мой вариант сработает. А вот как с большими файлами поступать, пока загадка. От того и полемика.
> if( strpos($a,$b) !== false )
>Вы аргументы перепутали.
Дико извиняюсь, из своего теста скопировал, а там у меня наоборот...
Буду внимательней. | |
|
|
|
|
|
|
|
для: Николай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() | |
|
|
|
|
|
|
|
для: adminn
(24.08.2008 в 20:20)
| | if( strpos($b, $i) !== false ) | |
|
|
|
|
|
|
|
для: BinLaden
(24.08.2008 в 23:12)
| | вме нужно не просто сравнить 2 переменные , а нойти совподение в файле
пробовал preg_match() но он если даже видет хоть один совпадающий символ то уже считает , что вхождение есть | |
|
|
|
|
|
|
|
для: adminn
(25.08.2008 в 00:26)
| | так и не решил)))) помогаем)))) перепробовал кучу выражений и функций | |
|
|
|
|
|
|
|
для: adminn
(25.08.2008 в 01:03)
| | 1. Я ничего Вам не предлагал, а просто указал на ошибку.
2. Значит Вы неправильно пользуетесь preg_match() | |
|
|
|