访问 PHP 根目录之外的 JSON 文件
本文关键字:JSON 文件 PHP 根目录 访问 | 更新日期: 2023-09-27 18:31:57
我有一个正在创建JSON文件的应用程序和一个使用该JSON文件更新数据库的PHP页面。现在,我希望应用程序和PHP页面在两台不同的机器上运行。因此,我在机器 1 上运行了应用程序,从应用程序创建的 JSON 文件存储在 PHP 文件根目录之外的"公共"目录中。我如何确保 PHP 能够访问此文件,或者更确切地说,我可以在哪里以及如何存储该 JSON 文件以便 PHP 可以使用该文件?
来自 C# 的 JSON 结构:
public class User_Group
{
public int ID_UserGroup { get; set; }
public string Name_UserGroup { get; set; }
public int UserID { get; set; }
}
public class User_Role
{
public int ID_User { get; set; }
public string Role_User { get; set; }
public string User_Role_Description { get; set; }
public List<User_Group> UserGroup { get; set; }
}
public class Stand_Orte
{
public int ID { get; set; }
public string Bezeichnung { get; set; }
public List<Modul> modul { get; set; }
}
public class Modul
{
public string ID { get; set; }
public string Seriennummer { get; set; }
public string Bezeichnung { get; set; }
public string StandortID { get; set; }
public List<Mess_Kanal> MessKanal { get; set; }
}
public class Mess_Kanal
{
public string ID { get; set; }
public string ModulID { get; set; }
public List<LogMess_Daten> LogMessDaten { get; set; }
}
public class LogMess_Daten
{
public string KanalID { get; set; }
public string Zeitstempel { get; set; }
}
public class RootObject
{
public int ID_Project { get; set; }
public string Name_Project { get; set; }
public int Receiver_ID { get; set; }
public string Receiver_Name { get; set; }
public int UserID { get; set; }
public User_Role UserRole { get; set; }
public Stand_Orte Standorte { get; set; }
}
PHP 解码:
$jsonData = file_get_contents("JSON_superproject.json");
$phpArray = json_decode($jsonData);
如果将"JSON_superproject.json"保存到例如 K:''Public''ABC 中,我尝试使用它,例如:file_get_contents@("K:'Public'ABC'JSON_superproject.json");
它不起作用。它给出一个错误,即 K:''Public''ABC''JSON_superproject.json 中的文件不在根目录中。
我该如何解决这个问题?有什么想法吗?
谢谢狂欢
我认为您至少有以下选择:
- 在树中创建一个 PHP 脚本可以访问的目录,并与第一台机器共享它,并更新第一个应用程序以将文件放在那里。
- 创建一个任务计划程序作业,该作业定期将文件从公共复制到树中PHP脚本可以访问的位置。
- 使用 HTTP POST 将文件推送到第二台机器到 PHP 脚本,该脚本要么只保存文件以供进一步处理,要么直接处理它。
- 使文件可通过 Web 访问(即启动一个新的 Web 服务器实例,其根目录是包含该文件的目录)并通过 http/https 访问该文件。文件是从第一台服务器还是从第二台服务器提供并不重要。
- 选择退出 PHP 的安全功能,该功能拒绝访问 PHP 根目录之外的文件(请参阅 http://php.net/manual/en/ini.core.php#ini.open-basedir)。基本上,此选项不是一个好的选择。