Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поиск данных в файловом документе.
 
 автор: admin_wmxi   (18.03.2009 в 08:26)   письмо автору
 
 

Здравствуйте. Столкнулись с такой проблемой: есть скрипт при открытии которого мы проверяем есть ли 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 ничто ;)

  Ответить  
 
 автор: Zend72   (18.03.2009 в 11:20)   письмо автору
 
   для: admin_wmxi   (18.03.2009 в 08:26)
 

А если разбать один большой файл на несколько маленьких? Маленькие файлы быстрее грузятся в память.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования