powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Загрузка файла. Строки в СПИСОК или МАССИВ?
14 сообщений из 14, страница 1 из 1
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943347
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть код :

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
if ($flag == false) {
   $filename = "cur_ip.dat";
   $fp = fopen($filename,'r') or die ("Error open cur_ip.dat"); //load file to stream to read at the begin  

   if (filesize($filename) == 0) {
   	$contents = '0.0.0.0';}
   	else {
	$contents = fread($fp, filesize($filename)) or die ("Error read cur_ip.dat");   //file size must be not EMPTY or ERROR
    fclose($fp) or die ("Error close cur_ip.dat");
	}  
    echo $contents;                                //string not list
   
}



который загружает текстовый файл в переменную для последующей обработки
при этом в файле есть строки типа
192.168.0.1
192.168.0.2
192.168.0.3
192.168.0.4

то есть с переносом строки
в echo $contents; списка уже нет : 192.168.0.1 192.168.0.2 192.168.0.3 192.168.0.4
далее нужно каждый ИП-адрес сравнивать с имеющимся (к примеру 192.168.0.8) и принимать решение

Вопрос :
- что с этим делать дальше? возможно передать $contents в массив а потом в цикл? или что еще?
- вот эта функция or die точно нужна? вычитал в справочнике о ней.
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943372
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

-сравнивать сразу при чтении из файла. зачем эта промежуточная $contents нужна?
-or die в данном случае ненужно
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943376
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сравнивать что с чем?
все таки сразу передать в массив? и сравнивать в цикле?
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943407
Фотография r u
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair сравнивать что с чем?
Pcrepairдалее нужно каждый ИП-адрес сравнивать с имеющимся (к примеру 192.168.0.8) и принимать решение
ну вот и сравнивай
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943436
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вместо echo $contents;
штоли
$arrContents = explode(" ",$contents);
var_dump($arrContents);
?
получите массив, только зачем он нужен если вам просто нужно определить есть этот адрес в файле или нет?

тогда достаточно будет
$pos = strpos($findIP, $contents);
if ($pos === false) {
echo "Строка '$findIP' не найдена;
} else {
echo "Строка '$findIP' найдена";
}

сделайте поправку на то, што strpos для $findIP="192.168.1"; найдет и 192.168.1 и 192.168.10
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943447
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не совсем просто

нужно будет посчитать еще сколько раз текущий ИП состоит в файле и если больше заданного числа тогда принять решение

то есть в цикле нужно увеличивать счетчик, после окончания цикла смотреть на результат
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943452
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairвозможно передать $contents в массивМожно файл прочитать сразу в массив
Pcrepairа потом в цикл?Неа. Потом просто посмотреть
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943455
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тут еще косячокс всплыл :

$ip_array = split("\n",$contents,-1);

выводит : array(4) { [0]=> string(12) "192.168.0.1 " [1]=> string(12) "192.168.0.2 " [2]=> string(12) "192.168.0.3 " [3]=> string(11) "192.168.0.4" }

Причем нужно использовать только \n (перенос строки) иначе не разбивает на ИП-адреса а выводит в МАССИВ одной строкой
а как потом удалить этом перенос строки? TRIM удаляет пробелы или?
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943456
Фотография -k2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

substr_count
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943457
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepairесли больше заданного числа тогда принять решениеКак вариант, запихнуть данные в БД, а там запросами выполнить сбор статистики.
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943476
mini.weblab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри на PCRE functions: preg_match, preg_match_all
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943478
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БД не вариант, ее нет
да и ИП-адресов там буде ну 200-300 в сутки, а в 00-01 это файл будет обнулятся, пока не придумал каким образом. никто не в курсе?
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943486
vkle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

Вы бы общую задачу изложили полностью, а не варианты решения. Мож есть какой другой, более простой способ. Ту же статистику количества попаданий айпишника в файл можно получить, например, гораздо более простым скриптом на awk.
...
Рейтинг: 0 / 0
Загрузка файла. Строки в СПИСОК или МАССИВ?
    #38943627
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Задача простая :
пользователь (по ИП-адресу) тащит страницу с веб-сервера и запускается скрипт
- входит ли пользователь в число ботов поисковиков (это уже готово) ДА -скрипт заканчивает работу и пользователь получает страницу

Если не входит
- входит ли пользователь в список ранее получавших страницы с сайта
ЕСли ранее получал страницы то сколько
Если число страниц превышает порог
ТОГДА пользователь получает 503 (а может 404) страницу
ИНаче пользователь получает страниц и в файл списка дописывается ИП-адрес

Это пока все
вопрос еще в том как это будет грузить веб-сервер, но это проверю в ходе эксперимента
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Загрузка файла. Строки в СПИСОК или МАССИВ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]