簡體   English   中英

在PHP根目錄之外訪問JSON文件

[英]Accessing JSON File Outside PHP root directory

我有一個正在創建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. 在樹中創建PHP腳本可訪問的目錄,並與第一台計算機共享該目錄,並更新第一個應用程序以將文件放置在該目錄中。
  2. 創建一個Task Scheduler作業,該作業定期將文件從Public復制到樹中的PHP腳本可訪問的位置。
  3. 使用HTTP POST到PHP腳本將文件推送到第二台計算機,PHP腳本只是保存文件以進行進一步處理或直接對其進行處理。
  4. 使文件可通過Web訪問(即,啟動一個新的Web服務器實例,其根目錄是該文件所在的目錄),然后通過http / https訪問該文件。 由第一服務器還是第二服務器提供文件都沒有關系。
  5. 退出PHP的安全功能,該功能拒絕對PHP根目錄之外的文件的訪問(請參閱http://php.net/manual/en/ini.core.php#ini.open-basedir )。 基本上,此選項不是一個好的選擇。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM