|
|
|
| Здравствуйте. Столкнулись с такой проблемой: есть скрипт при открытии которого мы проверяем есть ли IP посетителя в файле, если он там есть то мы нечего не делаем, а если его там нет то мы добавляем его IP и вызываем другую функцию. Но когда база весит 1.5 метров оно уже не хочет :) Помогите. Может можно както сделать без использование функции fread поиск в большом файле выражения.
$file = fopen ("ref_shows/ref_shows.txt","a+");
$ip = $_SERVER['REMOTE_ADDR'];
if ( $file == true )
{
$file_size = filesize("ref_shows/ref_shows.txt");
if ( substr_count( fgets ( $file, $file_size ), $ip )==0 )
{
fputs ( $file, $ip." ");
//@mysql_query("UPDATE `zmc2_users` SET `cash` = cash+$ref_bonus WHERE `id` = '$id' LIMIT 1;");
return true;
}
else
{
return false;
}
}
|
Насчет переделки в мускул ненадо. Слишком большая нагрузка на него. Поэтому и по файлам сделано. | |
|
|
|
|
автор: DEM(univer) (18.03.2009 в 11:06) |
|
|
для: admin_wmxi
(18.03.2009 в 08:26)
| |
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$file = file("ref_shows/ref_shows.txt");
if(!in_array($ip,$file))
{
//Тут мы открываем файл и делаем другие манипуляции ;)
}
?>
|
| |
|
|
|
|
автор: DEM(univer) (18.03.2009 в 11:23) |
|
|
для: DEM(univer)
(18.03.2009 в 11:06)
| | И еще можно убрать лимит выполнения скрипта поставив в самом начале скрипта set_time_limit(0);
ЗЫ. ну вообще-то мускул и создавался для работы с большим количеством данных, поэтмоу я думаю то что в файле полтора метра - для MySQL ничто ;) | |
|
|
|
|
|
|
|
для: admin_wmxi
(18.03.2009 в 08:26)
| | А если разбать один большой файл на несколько маленьких? Маленькие файлы быстрее грузятся в память. | |
|
|
|