• DONATE to NULLED!
    Форуму и его команде можно помочь, мотивировать модераторов разделов.
    Помогите модератору этого раздела killoff лично.

Помощь [help] PHP скрипт рандома

Статус
В этой теме нельзя размещать новые ответы.

Nightwalker

Местный житель
Регистрация
4 Фев 2007
Сообщения
229
Реакции
24
всем привет. у меня возник вопрос. у меня на странице этот код

PHP:
<?php
$file = 'file.txt'; // имя файла
$lines = file($file);
echo $lines[rand(0, count($lines) - 1)];
?>

используется 3-4 раза. то есть при заходе на страницу одного человека, данный код выполняется 3-4 раза. при заходе 10 человек уже получается 30-40 раз. смысл данного скрипта в том, что он берет рандомную строку их текстового файла. мне инетерсно, может ли этот скрипт вешать сайт? и можно ли сделать кеширование на него, чтоб строка менялась не на каждом зашедшим на страпницу?
 
По алгоритму можешь сделать следующее:

При заходе серфера, рандомом назначаешь какойнить переменной цифру от 0 до 5, дальше сравниваешь, если эта переменная ровна 0 то тогда генеришь три строчки и записываешь их в файл, потом этот файл читаешь и разбираешь массив, если не равно 0 то тогда просто читаешь файл и разбираешь массив по трем строчкам и выводишь все это...

Это позволит тебе снизить нагрузку на сервак и строка будет менять примерно на каждом 5 зашедшем...

Писать код было лень - написал словами :)
 
кто-нибудь напишите код с кешированием, пожалуйста. готов 2 вмз кинуть на счет
 
и где ут кэширование ? :eek:

2 Nightwalker: ты быхоь написал что за строка . Это что ? Анекдот? цитата ?,Какая частота тебя устроит ?
 
и где ут кэширование ? :eek:

2 Nightwalker: ты быхоь написал что за строка . Это что ? Анекдот? цитата ?,Какая частота тебя устроит ?

в некоторых случаях просто строка с текстом, в некоторых ссылка или ссылка с картинкой. но я думаю, что совсем не важно. частота... ну хочется чтоб меняелось каждые полчаса или через каждые 100 человек. мне главное нагрузку снизить
 
PHP:
<?php
$file = 'file.txt';
$cash_file='cash_file.txt';
// чем больше вторая цифра, тем режебудет обновление
$i=rand(0,10);
if(!$i){
    $tmp=file($file);
    $fp=fopen($cash_file,"w");
    fwrite($fp,$tmp[rand(0,count($tmp)-1)]);
    fclose($fp);
    }
//  выводим содержимое кэш-файла    
readfile($cash_file);
?>
то о чем писал Grifindore
и я с ним вполне согласен.
Как вариант --- смену строки засунуть в крон, что еще больше снизит нагрузку ( что за посещаемость что это ТАК критично ? ) и выдавать пользователю просто содержимое "кэширующего файла"
 
вроди, работает. давайте кошелек =)
 
*** скрытое содержание ***:yahoo:
*** скрытое содержание ***
Krutto peripesal tuze strocku cto i sam avtor, tok dlineje ;]]]


kstate nasciot zapisi v fail, mozet popastca takoi moment, c to neskolko liudei srazuze v nego budut vpisyvat, i v itoge mozet byt` pustoi otvet ;], no nebeda, tak kak sledujusij polzovatel vpishet (jesli random pokazet 0) ;]]
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху