Если операция разовая - то лучше делайте на том, на чем умеете.
Для того же php есть XMLReader - класс для потоковой обработки больших xml-файлов. Т.е. он не будет пытаться запихнуть весь файл в память, а позволяет обрабатывать его поэлементно.
http://php.net/manual/ru/class.xmlreader.php
Скриншот бы не помешал и адрес сайта, собственно. А то я вот не очень понял, что значит "только ярлык" показывает
Ну и раз пошла такая пьянка - то можно в том же хроме отлаживать сайты прям на подключенной шнурком к компьютеру мобиле, включив отладку вот тут chrome://inspect/#devices там же и инструкция по подключению. У вас будет окошко developer tools подключенное ко вкладке в мобильном хроме.
Там, кстати, наверно и событие смены ориентации будет.
Текущее время - объект Date(); Фотки подгружать - либо аяксом, либо изначально хранить ссылки на них на странице, а вставлять через свойство innerHtml или .src
Вот, например, первая ссылка из поиска http://ashep.org/2013/apache-aliasing-i-redirekt/#.VUDM6SHtlBc
В апаче можно алиасы делать на каталоги, как вариант.
http://httpd.apache.org/docs/2.2/mod/mod_alias.html
А на словах-то вы можете пояснить, что сделали?
Ну вы насколько в javascript шарите? про setInterval() почитайте, например.
А чем вас вариант с генерацией наального id пользователя на сервере не устраивает? Ну т.е. на сервере раз в 5 минут (или сколько там по условию должен блок ротироваться) запускается скрипт. Вычисляет начального пользователя, с которого надо показывать блок, записывает это хоть в БД, хоть в файл.
При отдаче страницы пользователю уходит это значеине и размер блока, тогда на клиенте случайный полльзователь будет вычислять элементарно -
user_id = user_max - Math.floor(Math.random() * users_block_size);
где user_max - это значение, сгенерированное первым скриптом.
Похоже не на задачку на IQ, а на тестовое задание в какую-нибудь из соцсетей.
Требований не вижу, задача в том, чтобы не повторялись аватарки? Иначе в чем проблема, что период и размер блока могут меняться?
Я бы вот сделал два отдельных скрипта - первый запускается раз в период и меняет по размеру блока номер, с которого начинается следующий блок - т.е. грубо говоря вычитает из текущего значения размер блока. Второй скрипт (может быть даже часть одного скрипта) - уже выбирает нужное количество пользователя.
При изменении периода и размера блока - у вас просто поменяется время запуска скрипта. Выбирать пользователей скрипт будет с прошлого номера и дальше.