Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 根据地理位置从不同目录中随机选取图像_Php_Cloudflare - Fatal编程技术网

Php 根据地理位置从不同目录中随机选取图像

Php 根据地理位置从不同目录中随机选取图像,php,cloudflare,Php,Cloudflare,从目录中随机选取图像的代码非常简单 比如,;我目前的代码是: <?php $imagesDir = 'img/'; $images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE); $randomImage = $images[array_rand($images)]; // See comments ?> 我知道它的逻辑,但将它转化为代码是我一直在努力做的另一件事 有什么想法吗?基本上,你只是想改变英格兰->img/

从目录中随机选取图像的代码非常简单

比如,;我目前的代码是:

<?php
$imagesDir = 'img/';
$images = glob($imagesDir . '*.{jpg,jpeg,png,gif}', GLOB_BRACE);
$randomImage = $images[array_rand($images)]; // See comments
?>
我知道它的逻辑,但将它转化为代码是我一直在努力做的另一件事


有什么想法吗?

基本上,你只是想改变英格兰->img/en/ 任何直接的转换,像这样,我喜欢根据语言使用字典/映射,或者使用PHP。使用三元组,如果关键国家/地区不在数组中,则使用img/

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

创建位置目录及其对应名称的数组,然后根据我的示例中的geo location$location构建映像目录

$location = 'australia';

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

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

如果在数组中找不到位置,$imagesDir变量的设置将默认为img/现在的状态。

您将如何处理“任何其他国家”?您将如何处理“任何其他国家”?是的,最好将其添加到您的答案中。它已经存在,在$imagesDir的设置中,数组中未找到的任何值都将默认为“img/”。我的意思是,您的代码需要一些解释,因为这可能不是每个人都能看到的。此外,“HTTP\u ACCEPT\u LANGUAGE”头-请参阅,可以通过$\u服务器['HTTP\u ACCEPT\u LANGUAGE']找到的头可能很有用。事实上,用户是从特定国家为您的网站提供服务的,或者来自特定国家的ip,并不一定意味着他希望看到该图像。一、 一个荷兰人可能从英国伦敦冲浪,原因有很多。。。您也可以将两者结合使用,并使用GEO IP finder作为备份。
$location = 'australia';

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

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