Случайно назначить изображение для каждой страницы на моем сайте? - PullRequest
0 голосов
/ 08 апреля 2011

У меня есть 50-страничный сайт и набор из 20 изображений. Как можно случайным образом назначить изображение каждой странице, но обеспечить, чтобы на каждой странице всегда отображалось одно и то же изображение?

Каждая страница имеет значение слаг, есть ли способ, чтобы хэшировать это в целое число от 1-20 (или любой набор чисел)?

Ответы [ 3 ]

1 голос
/ 08 апреля 2011

Я почти уверен, что вы могли бы использовать body id = "page", чтобы определить, какое изображение будет отображаться с помощью селектора.

Более или менее так же, как вы сделали бы активное состояние для навигации, используяспрайты css.

1 голос
/ 08 апреля 2011

Как насчет чего-то вроде $count = md5($str) % 20;, изображение страницы останется прежним, если страница str не изменится. Если вы измените содержимое, изображение изменится.

Люди, работающие с PHP, обычно включают общую страницу из верхних и нижних колонтитулов и других частей, но если это не так или содержимое разделено в каком-то файле, вы также можете использовать функцию md5_file.

1 голос
/ 08 апреля 2011

Как сказал @Null Set, если это статический контент, то достаточно просто сделать это вручную. Если, с другой стороны, страница генерируется динамически, то, возможно, стоит сохранить эту информацию в базе данных. Вы можете иметь таблицу images, где каждая запись имеет автоматически увеличивающийся идентификатор и URL-адрес изображения. Таблица БД, содержащая информацию о вашей странице, может содержать внешний ключ к соответствующей записи таблицы images.

Любой новой странице можно присвоить изображение, используя ваши базы данных, эквивалентные RAND(), чтобы выбрать случайную запись из таблицы images для использования (хотя следует помнить, что для MySQL, RAND() быстро из-за проблем с производительностью - 20 записей - это нормально, но если вы начнете добавлять намного больше, вам придется начать оптимизировать немного больше).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...