簡體   English   中英

require_once無法打開流:沒有相對應的文件或目錄-即使相對路徑似乎正確(?)

[英]require_once failed to open stream: No such file or directory - even if relative path seems to be correct(?)

好吧,我有這個dashboard.php文件:

<?php
require_once ('../resources/config.php');
?>

我的文件樹如下所示:

/家/名/的public_html /

  • 管理員/ dashboard.php
  • 資源/ config.php文件

我真的不知道這到底是怎么回事,我在另一個PHP腳本的完全相同的目錄中使用了完全相同的include,並且一切運行良好。

有任何想法嗎?

編輯:我注意到在某些情況下,從服務器上同一目錄調用的文件的相對路徑是不同的,現在我知道為什么了。 我使用index.php來控制URI請求並擁有更好的URL,我在那里有一個switch語句,該語句使用include來調用所請求的文件,因此,如果其中包含一個腳本也具有include / require語句,則路徑會改變。

我現在正在嘗試解決此問題,但是我是一個非常初學者,因此您的任何建議都將非常有幫助。

非常感謝大家,到目前為止,他們都回答了!

我通常使用文件的真實路徑,如下所示:

require_once(realpath(dirname(__FILE__)) . '/../../general_controler/database_manager.php');

本示例來自我的DataImporter抽象類,使用DatabaseManager抽象類。

在此示例中,我的樹結構如下所示:

(主域)/PC_administration_interface/Controler/data_importer.php

(主域)/general_controler/database_manager.php

在您的情況下,將是這樣的:

require_once (realpath(dirname(__FILE__)) . '/../resources/config.php');

否則,以“ /”開頭的路徑從根開始。 在Xampp中,htdocs是網站的根文件夾,在我的情況下,它可能是這樣的(因為我的general_controler文件夾直接在根目錄中):

require_once('/general_controler/database_manager.php')

我想對您來說,它就像(假設home是根目錄的子文件夾):

require_once('/home/name/public_html/resources/config.php');

第一個解決方案可能是最好的……無論如何,您應該嘗試一下。

我希望它能解決您的問題,

蒙特利爾的JonathanParent-Lévesque

暫無
暫無

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

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