[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: радота с txt документом
feniks_iopok
у меня есть тхт документ с айпишниками, в каждой строке один айпи. на странице в переменной хранится айпи пользователя. мне нужно сравнить айпи в переменной с последним айпи из документа. если совпадают , делаем одно, если нет, другое. как вырвать этот последний айпишник из документа?

желательно без занесения всего документа в массив и выбора последнего его элемента, потому что документы массивные, а эти запросы выполняются по несколько раз в минуту а то и секунду. нагрузка будет большая слишком...

спасибо!1



Спустя 14 минут, 41 секунда (8.06.2011 - 12:52) twin написал(а):
Если известна примерная длина строки, можно вычислить позицию её начала, прибавив для верности несколько символов, выдернуть этот кусок с помощью fread() например или fgets(),
а потом взять часть полученной строки от последнего символа переноса.

Спустя 3 минуты, 57 секунд (8.06.2011 - 12:56) feniks_iopok написал(а):
twin
спасибо попробую

Спустя 12 минут, 12 секунд (8.06.2011 - 13:08) ИНСИ написал(а):
Цитата
желательно без занесения всего документа в массив и выбора последнего его элемента

По другому, кажется уже будет неправильно, так как другого варианта я не вижу.
Свернутый текст

$ip = '127.0.0.';
$arr = file('ip.txt');

if(end($arr) == $ip)
echo 'Последний IP такой же как и мой';
else
echo 'Не последний';


Спустя 28 минут, 30 секунд (8.06.2011 - 13:37) twin написал(а):
Цитата
По другому, кажется уже будет неправильно
а если файл на 100mb))
Цитата
так как другого варианта я не вижу.

Ну вот так к примеру
    $size = filesize('file.txt');
$offset = $size - 20;
$string = file_get_contents('file.txt', NULL, NULL, $offset);

echo substr($string, strrpos(trim($string), "\n") + 1);

Спустя 34 минуты, 2 секунды (8.06.2011 - 14:11) mako написал(а):

$link=fopen('1.txt',r);
fseek($link,-17,SEEK_END); \\передвигаем указатель файла на 17 символов назад от конца файла
$a=fread($link,17); \\читаем эти символы в строку


у меня постоянно получается что в строке и есть последний искомый ип, но по хорошему строку надо парсить. 17 символов это 15- макс длина ип + 2 символа на перевод строки.

Спустя 1 час, 16 минут, 35 секунд (8.06.2011 - 15:27) twin написал(а):
А если IP длиной меньше 15?

Спустя 7 минут, 33 секунды (8.06.2011 - 15:35) feniks_iopok написал(а):
twin
Спасибо!! Проверил , все отлично работает smile.gif
Остальные не проверял, но всем плюсы поставлю))спасибо!

Спустя 10 минут, 57 секунд (8.06.2011 - 15:46) feniks_iopok написал(а):
аа паника)

айпиник вырезает правильно, но когда пытаешься сравнить, то всегда выдает , что они разные. хотя совпадают.

$size = filesize('ip/ip_1.txt');
$offset = $size - 20;
$string = file_get_contents('ip/ip_1.txt', NULL, NULL, $offset);
$ip2 = substr($string, strrpos(trim($string), "\n") + 1);
echo $ip2, '<br>';
if ($ip == $ip2) {echo 'sovpalo';} else {echo 'ne sovpalo';} ?>

Спустя 3 минуты, 7 секунд (8.06.2011 - 15:49) feniks_iopok написал(а):
аа все , trim сделал, теперь все норм) спасибо)

Спустя 2 часа, 11 минут, 42 секунды (8.06.2011 - 18:01) minok94 написал(а):
Вот так-то, 3 мин и решение уже самостоятельно найдено))

Спустя 45 минут, 27 секунд (8.06.2011 - 18:46) inpost написал(а):
minok94
Есть классный приём, когда мои партнеры задают вопрос, как решить данную вещь, если часик промолчать, через час уже сами нашли решение smile.gif В 99% трюк отлично работает, вот почему на фирмах так тяжело попасть к начальнику, он вечно говорит, что занят - чтобы сотрудники сами додумывали различные детали.
П.С. Это я не про себя, это так, рассуждения в слух smile.gif

Спустя 16 часов, 51 минута, 41 секунда (9.06.2011 - 11:38) minok94 написал(а):
Вот именно об этом я и говорил)))


_____________
есть сайт, 3-4к уников в сутки. зарабатываю 100 рублей в день, почему так мало?
Быстрый ответ:

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