Выбор случайного изображения из разных каталогов в зависимости от местоположения GEO - PullRequest
0 голосов
/ 06 июля 2018

Код для выбора случайного изображения из каталога довольно прост.

Например; мой текущий код такой:

<?php
$imagesDir = 'img/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)]; // See comments
?>

Я хочу использовать IPO-искатель Cloudflare, поэтому, когда пользователь посещает веб-сайт, он возвращает информацию о том, откуда пользователи.

Так скажем, я хочу,

  if england use directory > img/en/ 
  if australia use directory > img/au/
  if USA use directory > img/usa/
  if NZ use directory > img/nz/
  if any other country > img/

Я знаю логику, но встраивание в код - это еще одна вещь, которую я изо всех сил пытался сделать.

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 06 июля 2018

Создайте массив каталогов местоположений и их соответствующих имен, затем создайте свой каталог образов на основе географического местоположения ($location в моем примере).

$location = 'australia';

$dirs = array('england'   => 'en',
              'australia' => 'au',
              'USA'       => 'usa',
              'NZ'        => 'nz');

$imagesDir = 'img/' . (isset($dirs[$location]) ? $dirs[$location] . '/' : '');

Если местоположение не найдено в массиве, значение переменной $imagesDir по умолчанию будет img/, как сейчас.

0 голосов
/ 06 июля 2018

По сути, вы просто пытаетесь конвертировать "england" -> img / en / Любое прямое преобразование, например, мне нравится использовать словарь / карту (в зависимости от языка) или ассоциативные массивы для PHP.Использует троичный, если ключ (страна) не находится в массиве, то «img /»

$arr = [
   "england" => "img/en/",
   //...
];
$imagesDir = in_array($COUNTRY, $arr) ? $arr[$COUNTRY] : "img/";
...