Модернизировать скрипт

J
На сайте с 06.07.2011
Offline
169
374

С прошедшим!! )

Есть скрипт, который выводит случайные строки из текстовых файлов, но вот сильно стал сервер нагружать, как боты стали ходить и траф прибавился. LA очень сильно скачет и бывает, что вэб не доступен.

<?

$textdor=file("/home/bas.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

$textdor1=file("/home/base/base.".mt_rand(1,509)."",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

$textdor2=file("/home/domains.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

$col_str = count($textdor)-1;

$col_str1 = count($textdor1)-2;

$col_str2 = count($textdor2)-3;

?>

Выводятся случайные строки таким кодом: <? echo $textdor3[rand(0,$col_str3)]; ?>

Но таких кодов на странице может быть около 400 и прогружается очень медленно. Может кто подскажет, как модернизировать скрипт?

K1
На сайте с 03.12.2010
Offline
120
#1

Возможно, добавление кэширования снизит нагрузку.

J
На сайте с 06.07.2011
Offline
169
#2
Kenguru111:
Возможно, добавление кэширования снизит нагрузку.

Может посоветуете скрипт кэширования?

Хотя кэширование не выход из ситуации.

C
На сайте с 26.10.2013
Offline
54
#3

Не совсем ясен весь алгоритм


Но таких кодов на странице может быть около 400

Все они берутся из файлов bas.txt, domains.txt и base.".mt_rand(1,509) ?

Вы случайно не перечитываете 400 раз файлы bas.txt и domains.txt ?

Вот эти две строки

$col_str = count($textdor)-1;

echo $textdor[rand(0,$col_str)];

Можно заменить на одну

echo $textdor[array_rand($textdor)];

Услуги по парсингу данных (/ru/forum/939826), единоразовый и регулярный сбор данных. Любые объемы. Скрипты на PHP, создание и доработка, решение проблем с сайтами Пишите в личные сообщения или скайп
J
На сайте с 06.07.2011
Offline
169
#4
colorito:
Не совсем ясен весь алгоритм


Все они берутся из файлов bas.txt, domains.txt и base.".mt_rand(1,509) ?
Вы случайно не перечитываете 400 раз файлы bas.txt и domains.txt ?

Вот эти две строки
$col_str = count($textdor)-1;
echo $textdor[rand(0,$col_str)];

Можно заменить на одну

echo $textdor[array_rand($textdor)];

Почему 400 раз?

/home/base/base.".mt_rand(1,509)." - выбирет случайный файл base.1 или base.365 из 509 файлов.

C
На сайте с 26.10.2013
Offline
54
#5
jano:
Почему 400 раз?
/home/base/base.".mt_rand(1,509)." - выбирет случайный файл base.1 или base.365 из 509 файлов.

Именно поэтому я его и не упомянул во фразе

Вы случайно не перечитываете 400 раз файлы bas.txt и domains.txt ?

Что значит

таких кодов на странице может быть около 400

Каких "таких"? С чтением двух других файлов, или только тот, который рандомный перечитывается?

J
На сайте с 06.07.2011
Offline
169
#6
colorito:
Именно поэтому я его и не упомянул во фразе


Что значит


Каких "таких"? С чтением двух других файлов, или только тот, который рандомный перечитывается?

Который рэндомно и не только, разные. Таких текстовых строчек - 23.

$textdor1=file("/home/base/base.".mt_rand(1,509)."",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

$textdor2=file("/home/domains.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

....

$textdor22=file("/home/base/old.".mt_rand(1,509)."",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

$textdor23=file("/home/new.txt",FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);

Коды, которые выводят случайные строчки:

<? echo $textdor3[rand(0,$col_str3)]; ?><? echo $textdor22[rand(0,$col_str22)]; ?><? echo $textdor3[rand(0,$col_str3)]; ?><? echo $textdor3[rand(0,$col_str3)]; ?><? echo $textdor23[rand(0,$col_str23)]; ?><? echo $textdor2[rand(0,$col_str2)]; ?>

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий