Вполне прокатит, если спрос на файлы имеет нормальное распределение (близкое к нему).
Выдернул немного кода. Может, будет чем-то полезен (вроде, ничего не упустил, избавлял от специфичных для движка вещей):
function upload_process($folder) //--Возвращает текст ошибки в случае неудачи { ... if ( file_exists($folder) ) { if ( ! is_dir($folder) ) return 'Невозможно создать указанную папку'; //--Существует файл с таким же именем } else { if ( ! mkdir($folder) ) return 'Невозможно создать указанную папку'; } $file = $_FILES['userfile']; if ( $file['error'] == UPLOAD_ERR_NO_FILE ) return 'Файл не выбран.'; if ( $file['error'] != UPLOAD_ERR_OK ) return 'Ошибка загрузки файла.'; if ( $file['size'] > 1024*1024 ) return 'Превышен допустимый размер файла.'; //-- 1024*1024 - 1 мегабайт $info = getimagesize($file['tmp_name']); if ( ! $info ) return 'Файл имеет неподдерживаемый формат.'; switch ($info['mime']) { case 'image/jpeg' : $ext = '.jpg'; break; case 'image/gif' : $ext = '.gif'; break; case 'image/png' : $ext = '.png'; break; default : return 'Файл имеет неподдерживаемый формат.'; } do { $filename = $folder . uniqid() . $ext; } while ( file_exists($filename) ); if ( ! move_uploaded_file($file['tmp_name'], $filename) ) return 'Ошибка перемещения файла.'; ... return 0; }
Все логично. Класс занимается ресайзом изображений. А их загрузка на сервер - уже другая подзадача. Для нее наверняка можно найти тоже готовое решение. Где-то у меня был кусок когда в движке для безопасной загрузки, сейчас поищу
А, вот так. Вы хотите чтоб на конкретной странице были всегда постоянные какие-то 4 новости, или, скажем, чтобы раз в сутки эти новости менялись?
Один блок = один файл. А на скольких страницах этот блок не важно. Либо я вас не до конца понял.
Имхо, у сайта должно быть конечное число существующих страниц.
Если страница удалена (запрещена к индексированию), Яндекс её выкидывает с индекса, но поначалу иногда её стукает. При этом в Яндекс вебмастере указывается причина исключения. Если ссылка на эту страницу нигде не палится, то со временем Яндекс перестает ее опрашивать, а еще позже (если верить хелпу Яндекса) она пропадет и со списка исключенных страниц.
Но если где-то есть ссылка на страницу, ее следует держать закрытой (роботс, 404, ноиндекс...) постоянно.
Как вариант, если, допустим статей в базе очень много, а выбрать надо всего 3-5 случайных, то рациональнее выполнить N запросов вида
SELECT ... FROM ... WHERE ID <= rand LIMIT 1
где rand - число в диапазоне 0..кол-во_статей, сгенерированное пхп
1. Читать этот блок из текстового файла. Текстовый файл обновлять кроном (либо то же самое сделать непосредственно на PHP. Если таймаут прошел, вытаскиваем из БД, заносим в файл, отображаем, иначе отображаем из файла)
2.
Разницы нет. Выбирайте сколько нужно, потом select ... from ... where id in (...)
P.S. Если записей очень много, то, думаю, на счет второго пункта надо еще помозговать
Один из вариантов - несколько абсолютно идентичных зеркал (организовать реплицирование), домен имеет несколько A-записей (ip-адреса зеркал). При запросах ДНС-сервер будет в случайном порядке отдавать ip-адреса, тем самым нагрузка будет распределяться.
А в Apache есть mod_rewrite