访问PHP根目录之外的JSON文件

时间:2014-11-26 09:09:57

标签: c# php json

我有一个创建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中的文件不在根目录中。

我该如何解决? 有什么想法吗?

谢谢你, Revathy

1 个答案:

答案 0 :(得分:0)

我认为您至少有以下选项:

  1. 在树中创建一个可供PHP脚本访问的目录,并与第一台机器共享,并更新第一个应用程序以将文件放在那里。
  2. 创建一个任务计划程序作业,该作业定期将文件从Public复制到树中可供PHP脚本访问的位置。
  3. 使用HTTP POST将文件推送到第二台机器上,该脚本只保存文件以供进一步处理或直接处理。
  4. 使文件可通过Web访问(即启动一个新的Web服务器实例,其根目录是该文件的目录),并通过http / https访问该文件。无论文件是从第一台服务器还是从第二台服务器提供都无关紧要。
  5. 退出PHP的安全功能,拒绝访问PHP根目录之外的文件(请参阅http://php.net/manual/en/ini.core.php#ini.open-basedir)。基本上,这个选项不是一个好选择。