in_array 如何在使用 PHP 从外部 URL 获取值时工作

How can in_array work while fetching values from external URL using PHP

我有以下代码,其中包含一些密钥,当有人想从我的服务器获取一些信息时,他们会发送带有 URL 的 API 参数,然后用我的 [=39= 进行验证] 密钥存储和 returns 输出。

$get_api = $_GET['api'];
$api = array('api_key1','api_key2','api_key3','api_key4');

if(in_array($get_api,$api, true)){
   echo "Found";
} else{
   echo "Not found";
}

当有人传递以下 API 参数时,当 URL 以下时,他们将看到输出为 found

https://www.example.com/index.php?api=api_key1

但是我有几台服务器,我必须在其中托管这些 API 密钥。所以我不能在每次必须添加一个时手动去添加 API 键。所以我做了以下事情。我试图在一台服务器上托管 API 密钥,其他所有服务器都会查找该文件,如果找到它,它将 return found.

代码是:

API 托管代码:(HTML)

'api_key1','api_key2','api_key3','api_key4'

请求API键的代码:(PHP)

$get_api = $_GET['api'];
$fetch_keys = file_get_contents("https://www.example.com/path-to-keys.html");
$api = array($fetch_keys);  // fetching and putting that in array

if(in_array($get_api,$api, true)){
   echo "Found";
} else{
   echo "Not found";
}

但是,它不起作用。这是 returning 内部错误。请任何人指导我如何解决它,或者他们有更好的方法来解决它。谢谢

试试 $api= explode (',', $fetch_keys);