Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Поиск // Сессия (https://forum.antichat.xyz/showthread.php?t=163620)

vorona 15.12.2009 00:12

Поиск // Сессия
 
1. Как быстро и эффективно организовать поиск на PHP в файле в несколько мб?
2. Как сделать, чтоб сессия на поддомене не терялась?

Serzh CS 15.12.2009 00:32

Скорее всего нужно будет ssesion_start(); привязывать как-то к ip адресу.

Root-access 15.12.2009 00:38

Цитата:

Сообщение от vorona
1. Как быстро и эффективно организовать поиск на PHP в файле в несколько мб?
2. Как сделать, чтоб сессия на поддомене не терялась?


Что-то очень размытый вопрос.. Какой поиск нужен?
Может просто воспользоваться готовыми строковыми функциями? Или нужен продвинутый поиск?

vorona 15.12.2009 22:02

Цитата:

Сообщение от Root-access
Что-то очень размытый вопрос.. Какой поиск нужен?
Может просто воспользоваться готовыми строковыми функциями? Или нужен продвинутый поиск?

Ну есть файл размером 3 мб. Какой самый быстрый способо произвести поиск в этом файле?

m0Hze 15.12.2009 23:21

1) Хранить сессию в БД,и уже ручками привязывать клиенту как нужно.
2) Ну пхп не так много предоставляет для работы с ФС.Либо массив,либо считывать побайтово, и искать по мере поступления.Но это эффективно,только если нужно найти 1 вхождение,а если нет,то так и так парсить фесь файл = загружать в оперативку,а уж как - дело хозяйское.

vorona 15.12.2009 23:49

Цитата:

Сообщение от m0Hze
1) Хранить сессию в БД,и уже ручками привязывать клиенту как нужно.
2) Ну пхп не так много предоставляет для работы с ФС.Либо массив,либо считывать побайтово, и искать по мере поступления.Но это эффективно,только если нужно найти 1 вхождение,а если нет,то так и так парсить фесь файл = загружать в оперативку,а уж как - дело хозяйское.

1) по другому никак?

vorona 15.12.2009 23:51

Цитата:

Сообщение от b3
Встречный вопрос - сколько ты знаеш способов поиска ?

Ну все делают стандартно: file_get_contents или file, а потом в цикле preg_match или ereg. Но это ресурсоёмно слижко для больших файлов...

m0Hze 15.12.2009 23:59

Цитата:

Сообщение от vorona
1) по другому никак?

Ну вообще,я слышал недавно придумали такую штучку...cookies называеться.Так вот там говорят можно привязать к домену,да даже к любому!
2) А я бы все же считывал побайтово,если необходимо только 1 вхождение,и важно время.

Gifts 16.12.2009 01:30

vorona строковые функции + fread - если в пределах пхп, то будет достаточно быстро. Но вопрос - стоит ли, что это за файл в котором ищется, не проще ли будет переработать все в БД?

http://php.net/session_set_cookie_params - третий параметр позволяет устанавливать домен для сессионной куки. Выдержка из мана: To make cookies visible on all subdomains then the domain must be prefixed with a dot like '.php.net'.

m0Hze а если надо найти 5 вхождений в 50 метровом файле, уже что-то другое будете использовать?

Pashkela 16.12.2009 01:36

с файлом понятно, чтобы не зависеть от памяти:

$a = fopen ('123.txt', 'r');
while (!feof($a)) {
$b = fgets($a);
.......
}

построковая обработка. Если линукс - то проще grep юзать


Время: 07:32