根据 GEO 位置从不同目录中选择随机图像
Picking a random image out of different directories based on GEO locations
从目录中选取随机图像的代码非常简单。
例如;我当前的代码是这样的:
<?php
$imagesDir = 'img/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)]; // See comments
?>
我想使用 Cloudflare 的 GEO IP 查找器,因此当用户访问该网站时,它会反馈用户来自哪里。
所以假设我想要,
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/
我知道它的逻辑,但是将它写入代码是我一直在努力做的另一件事。
有什么想法吗?
本质上,您只是想转换 "england" -> img/en/
像这样的任何直接转换,我喜欢使用 dictionary/map(取决于语言),或 associative arrays 用于 PHP。使用三元组,如果键(国家)不在数组中,则"img/"
$arr = [
"england" => "img/en/",
//...
];
$imagesDir = in_array($COUNTRY, $arr) ? $arr[$COUNTRY] : "img/";
创建位置目录及其对应名称的数组,然后根据地理位置构建图像目录(在我的示例中为 $location
)。
$location = 'australia';
$dirs = array('england' => 'en',
'australia' => 'au',
'USA' => 'usa',
'NZ' => 'nz');
$imagesDir = 'img/' . (isset($dirs[$location]) ? $dirs[$location] . '/' : '');
如果在数组中找不到位置,$imagesDir
变量的设置将默认为现在的 img/
。
从目录中选取随机图像的代码非常简单。
例如;我当前的代码是这样的:
<?php
$imagesDir = 'img/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)]; // See comments
?>
我想使用 Cloudflare 的 GEO IP 查找器,因此当用户访问该网站时,它会反馈用户来自哪里。
所以假设我想要,
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/
我知道它的逻辑,但是将它写入代码是我一直在努力做的另一件事。
有什么想法吗?
本质上,您只是想转换 "england" -> img/en/ 像这样的任何直接转换,我喜欢使用 dictionary/map(取决于语言),或 associative arrays 用于 PHP。使用三元组,如果键(国家)不在数组中,则"img/"
$arr = [
"england" => "img/en/",
//...
];
$imagesDir = in_array($COUNTRY, $arr) ? $arr[$COUNTRY] : "img/";
创建位置目录及其对应名称的数组,然后根据地理位置构建图像目录(在我的示例中为 $location
)。
$location = 'australia';
$dirs = array('england' => 'en',
'australia' => 'au',
'USA' => 'usa',
'NZ' => 'nz');
$imagesDir = 'img/' . (isset($dirs[$location]) ? $dirs[$location] . '/' : '');
如果在数组中找不到位置,$imagesDir
变量的设置将默认为现在的 img/
。