[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Сравнение содержимого файла с готовой строкой
Userguest
Здравствуйте.
Как сравнить содержимое 10 строчного файла со строковыми данными переменной $text?



Спустя 17 минут, 11 секунд (24.07.2010 - 16:50) Basili4 написал(а):

if (file_get_contents('файл')==$text)

Спустя 18 минут, 50 секунд (24.07.2010 - 17:09) Ice написал(а):
Ребятки, а как же невидимые \r\n? Не будет ваша констра работать, а точнее она будет работать, только при однострочном файле.

Если проверять каждую строку, то:

$prepared_line = "Line2";
$handle = fopen( "compare.txt", "r" );
while ( ! feof( $handle ) ) {
$buffer = fgets( $handle, 4096 );
$buffer = str_replace( "\n", '', $buffer );
$buffer = str_replace( "\r", '', $buffer );

if( $buffer == $prepared_line )
print "TRUE";
else
print "FALSE";
}
fclose( $handle );
или

$prepared_line = "Line2";
$handle = file( 'compare.txt' );

foreach( $handle as &$line ) {
$line = str_replace( "\n", '', $line );
$line = str_replace( "\r", '', $line );

if( $line == $prepared_line )
print "TRUE";
else
print "FALSE";
}


compare.txt

Line1
Line2
Line3
Line4
Line5
Line6
Line7
Line8
Line9
Line0

Спустя 5 минут, 59 секунд (24.07.2010 - 17:15) KaFe написал(а):
if (crc32(strtolower(file_get_contents('файл')))==crc32(strtolower($text)))
И неипет laugh.gif

Спустя 6 минут, 20 секунд (24.07.2010 - 17:21) Ice написал(а):
Цитата (KaFe @ 24.07.2010 - 18:15)
И неипет 


print crc32("Line1") // 370311982
print crc32("Line1\r\n") // 1796491272

передумал? biggrin.gif

Спустя 1 минута, 53 секунды (24.07.2010 - 17:23) Basili4 написал(а):
Ice
ТС не уточнял про невидимые может он с ними сравнивать будет

А ты его этого удовольствия лишаешь

Спустя 38 секунд (24.07.2010 - 17:24) Ice написал(а):
Делать что ли больше нечего?
Забыл о невидимках - признайся сразу smile.gif

Спустя 5 минут, 45 секунд (24.07.2010 - 17:30) KaFe написал(а):
Ice нам сказано сравнить а не мудрить, объясняя для тех кто в танку, у нас есть действие и два объекта, мы просто применяем действия на эти два объекта, а не пытаемся найти их составляющее, чтобы применять действие к каждому составляющему объектов. wink.gif

Спустя 1 минута, 51 секунда (24.07.2010 - 17:31) Ice написал(а):
так не сравнивай несравнимое-то. Для тех, кто в танке: даже если у тебя гет_контентс, убери оттуда невидимки.

Спустя 1 минута, 30 секунд (24.07.2010 - 17:33) KaFe написал(а):
Ice Ладно делай что хочешь, ты царь и бог, а я умываю руки из данного топика wink.gif

Спустя 54 секунды (24.07.2010 - 17:34) Ice написал(а):
Лучше руки умыть, чем постоянно натыкаться на ФАЛСЕ wink.gif

Спустя 1 минута, 48 секунд (24.07.2010 - 17:36) KaFe написал(а):
Ice я за тобой слежу ph34r.gif , бойся я тебя по icq номеру вычислю laugh.gif

Спустя 33 секунды (24.07.2010 - 17:36) Ice написал(а):
его нельзя трогать, он сдетонирует smile.gif

Спустя 3 минуты, 9 секунд (24.07.2010 - 17:39) Basili4 написал(а):
Ice
И придет со своей студией и как запустить тебе цикл по 2 слоям. Мало не покажется. ph34r.gif А так вообще забыл про переносы. Но Тс не уточнял поэтому тут и говорить не о чем.

Спустя 3 минуты, 3 секунды (24.07.2010 - 17:42) KaFe написал(а):
Не знаю как но по мне
$text = strtolower(str_replace("\n\r","",$text));
$text2 = strtolower(str_replace("\n\r","",file_get_contents('sdfsd')));
if ($text2 == $text) echo 'Алилуя'; else echo 'Досвидальки отсюда';

ph34r.gif все я умыл руки

И давай еще учтем 29 системных символа таблицы символов вот будет потеха то ph34r.gif

Спустя 4 минуты, 58 секунд (24.07.2010 - 17:47) Ice написал(а):
Цитата (Ice @ 24.07.2010 - 18:36)
И придет со своей студией и как запустить тебе цикл по 2 слоям

Вот он тебя задел-то оказывается biggrin.gif
Цитата (KaFe @ 24.07.2010 - 18:42)
Не знаю как но по мне

Последовательность реплейсишь, а если ось другая будет? wink.gif


$prepared_line = "Line1Line2";
$handle = file_get_contents('compare.txt');
$handle = str_replace( "\n", '', $handle );
$handle = str_replace( "\r", '', $handle );
if($handle == $prepared_line)
print "TRUE";
else
print "FALSE";

Цитата (KaFe @ 24.07.2010 - 18:42)
И давай еще учтем 29 системных символа таблицы символов вот будет потеха то
Ну, не 29, а 30 wink.gif biggrin.gif
Их-то зачем, или ты уже зол на меня? smile.gif

Лады, хва оффтопить smile.gif

Спустя 6 минут, 53 секунды (24.07.2010 - 17:54) KaFe написал(а):
Цитата (Ice @ 24.07.2010 - 14:47)
а если ось другая будет?

Убьюсь ап стену и будет ТРУ laugh.gif Да завязываем

Спустя 14 часов, 29 минут, 5 секунд (25.07.2010 - 08:23) Userguest написал(а):
Спасибо за ответы.
Конструкция для простого чтения и вывода содержимого:

$handle = fopen ('file.php', 'r');

while ( ! feof( $handle ) ) {
$buffer = fgets( $handle, 4096 );
echo('-'.$buffer.'-');
}
$close = fclose ($handle);


вообще отказывается работать. Выводятся только --. Я молчу про сравнение.

Данный код находится в отдельном файле-обработчике.
Обращение к нему происходит посредством jQuery ($post).

Спустя 7 минут, 7 секунд (25.07.2010 - 08:30) Useruguest написал(а):
Исправил - все работает. В файле php-код. Нужно было написать так:

echo('-'.htmlspecialchars($buffer).'-');

Спустя 14 минут, 3 секунды (25.07.2010 - 08:44) Useruguest написал(а):
Сделал так:

$string1 = '...';
$string2 = '...';
$string3 = '...';
$handle = fopen ('file.php', 'r');
$counter = 0;
while ( ! feof( $handle ) ) {

$buffer = fgets( $handle, 4096 );
$buffer = str_replace( "\n", '', $buffer );
$buffer = str_replace( "\r", '', $buffer );
if($buffer == $string1 )
$counter++;
if($buffer == $string2 )
$counter++;
if($buffer == $string3 )
$counter++;
if($buffer == $string4 )
$counter++;

}
if($counter == 4){echo("Yes");}
else{echo("No");};
$close = fclose ($handle);


Можно ли сделать без $counter?

Спустя 25 минут, 2 секунды (25.07.2010 - 09:09) Basili4 написал(а):
Так тебе построчно нужно сравнить так и надо было говорить



$string[]='s';
$string[]='sada';
$string[]='asd';
$string[]='ada';
$arr=file('file.txt');

if (count(array_diff($arr,$string))>0) echo 'NO'; else echo 'YES';
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.