Помогите разобраться со скриптом!

Статус
В этой теме нельзя размещать новые ответы.
отлично принял латттео! буду смотреть в его сторону! тем более его можно уникализировать и залить реально нормальные статьи!

Вот кстати хорошая идея — кешировать получение файлов с другого домена, скажем, на сутки (можно и больше).
Создаем папку с кешем, к примеру ./cache
Если есть такой файл и время ее вышло — берем из кеша, нету — формируем, отдаем, а потом пишем в кеш.
PHP:
$cache = 1;//время в сутках
$file = 'http://www.sitename.ru/dom.txt';
$local_file = './cache/'.base64_encode($file);
if (is_file($local_file)) {
   if ((time()-($cache*86400))>filemtime($local_file)) $write=true;
   else $write = false;
} else $write = true;
if ($write) {
//здесь Ваш код получения данных и формирования страницы
$content = file_get_contents($file);
file_put_contents($local_file,$content);
} else $content = file_get_contents($local_file);
echo $content;
В общем, идея думаю понятна? Код не проверял, поток сознания.


шикарно! поток сознания отличный! буду применять! спасибо за готовый пример!


Я и говорю, один нормальный хостинг возьми, и все дела

Получить название очень легко через GET запрос в ифрейме
Код:
<iframe src='http://site.com?domain=<?php echo $_SERVER['SERVER_NAME'] ?">'
и на основании $_SERVER['SERVER_NAME'] меняй что то в контенте.
===

Вообще изначально про заглушку на домен говорилось, при чем тут SEO то?
Если ты хочешь SEO, тогда готовь на каждый домен уникальный текст и т.д.


ну куда уж без сео нынче братик! смысла тогда нету от всего!
 
шикарно! поток сознания отличный! буду применять! спасибо за готовый пример!
там чисто как идея
В общем, идея думаю понятна? Код не проверял, поток сознания.

Проблема с file_get_contents, которая не блокирует файл (в большинстве случаев это и не нужно) и в итоге мы можем попасть на ситуацию одновременного чтения и записи в файл, что покорёжит наши данные. Вообще это довольно редкий баг, но на его редкость не стоит полагаться.
Выкусить код записи можно тут: Для просмотра ссылки Войди или Зарегистрируйся

Ну и чистки кеша, нет. Будет папка мусором забиваться при активном использовании.
 
Проблема с file_get_contents, которая не блокирует файл (в большинстве случаев это и не нужно) и в итоге мы можем попасть на ситуацию одновременного чтения и записи в файл, что покорёжит наши данные. Вообще это довольно редкий баг, но на его редкость не стоит полагаться.
Это уж очень маловероятно при операции раз в сутки. У меня была похожая система кеширования, на практике локов не было.
И подумайте сами про этот конкретный случай, что будет в самом плохом варианте? Правильно, ничего — через сутки всё перезапишется заново. Максимум неприятностей — сутки простоя.
Ну и чистки кеша, нет. Будет папка мусором забиваться при активном использовании.
Не думаю, что там много страниц на продаваемом домене будет.

Но на самом деле это только основа, проверок много надо продумать. Я же предупреждал.
Например, я бы проверял на принадлежность домену, иначе во время ддоса можно легко диск забить.
 
Это уж очень маловероятно при операции раз в сутки. У меня была похожая система кеширования, на практике локов не было.
Там не локи будут, а битый контент. Локи как раз таки надо добавить, чтобы этого не произошло.
Как минимум стоит дописать в сохранение:
PHP:
file_put_contents($local_file, $content, LOCK_EX);

У меня тоже всё ок было пока был один поток и небольшие файлы...
И не надо забывать о копипасте/переиспользование кода, для некритичной задачи вроде сойдёт. Но потом ведь поленишься и скопипастишь это в критичное место...
 
Там не локи будут, а битый контент.
Вы правы, это я немного не так выразился. Имел в виду, что файл не удастся считать, если в него идет запись.

У меня тоже всё ок было пока был один поток и небольшие файлы...
Если уж делиться опытом. Обычные локи PHP не помогут. Делал дубликат файла с приставкой, если он существует — пишем туда.
Клиент не ожидает освобождения файла, файл переименовывается.
При 4 потоках это ещё как-то работает, потом крашится.
Вся проблема была в том, что в контенте хранился счётчик посещений.
Потом вынесли отдельно счётчик и стало стабильней работать.
Ещё было замечена нестабильная работа при десериализации массивов из файла более 500 элементов — при нескольких потоках тормозит жутко.
Потом переписал на MySQL эти куски кода и все проблемы ушли.
Но это так, к слову, ради обмена опытом.

И не надо забывать о копипасте/переиспользование кода, для некритичной задачи вроде сойдёт. Но потом ведь поленишься и скопипастишь это в критичное место...
Ага, а он ещё размножить хочет на 100500 доменов.
Проверки надо, кто ж спорит. Я бы, наверное, добавил проверку на валидность страниц — может ли быть такая страница в принципе, прежде чем кешировать.
Видимо, удаленный сервер должен отдавать какой-то ответ, что страницы нет, и если так — не писать в кеш, отдавать 404.
А то при ДДОСе может внезапно место закончиться на хостинге.
 
перечитал что вы написали! вник во все! и того спасибо ребят за ответ по кодингу определенного куска кода! но я все же понял что надо брать покупать Тундер 3 и не е...ть не вам не се6ебе мозг! тем более специалист который пишет достойный! шарит + грамотно написано все! еще раз спасибо большое!
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху