2017-03-27 155 views
0

我鏡像一個網站,並能夠通過使用替換路徑技術添加PHP包括所有PHP文件。在同一個目錄中的所有PHP文件生成圖像中的以下內容:重構PHP包含路徑

enter image description here

按預期工作,我能夠與導航式交互。如果我瀏覽到一個文件,是不是在同一個父文件夾的PHP包括但(報道/ index.php文件),然後我得到了以下錯誤:

Warning: include(navigation.php): failed to open stream: No such file or directory in F:\xampp\htdocs\xampp\navigations\1\reports\index.php on line 148 

Warning: include(): Failed opening 'navigation.php' for inclusion (include_path='F:\xampp\php\PEAR') in F:\xampp\htdocs\xampp\navigations\1\reports\index.php on line 148 

不知道是否有一個有效的方式能夠重構所有的PHP包括或不需要手動修復每個頁面?基本上,我想改變這個:如果說我在報告目錄

<?php include("navigation.php"); ?> 

進入這個:

<?php include("../navigation.php"); ?> 

是否有任何編輯器或集成開發環境可以做到這一點?我目前正在使用PhpStorm。

+1

更換"navigation.php"你可以在你的根路徑存儲到一個定義的常量'定義(「ROOT_PATH」,「全/根/路徑」);'在最高層你的索引文件(或者你在頂部包含的config.php中)。然後,包含在索引文件中的每個子腳本都可以包含像這樣的文件:include(ROOT_PATH。「/ navigation.php」);''或'include(ROOT_PATH。「/ reports/navigation.php」);' – Yolo

+0

Is那是根目錄到'navigation.php'文件的路徑,並且我會將定義的常量應用於所有頁面? – userrandomuser

+1

假設你有一個index.php。您的應用的起點。在第一行中,你可以添加'define('ROOT_PATH','full/root/path');'這應該和'echo $ _SERVER ['DOCUMENT_ROOT'];'應該是相同的路徑。只要在index.php中的define()下方包含它們,您就可以在包含的子文件(如report/navigation.php)中的任何地方使用定義的ROOT_PATH常量。如果你還不清楚,我可以嘗試重構你有什麼,只要你有一個很好的理由爲什麼你想要索引文件跨越特定的任務目錄,如/report/index.php – Yolo

回答

0

使用PhpStorm,您可以按SHIFT + CTRL + R調出一個查找&替換對話框,可以通過多個文件。限制你的選擇將文件的完整路徑,如果需要,並與"../navigation.php"

+0

你是否在裁判路徑對話框中替換對不起?如果是這樣,那麼是不是將所有具有'navigation.php'的文件都替換爲'../ navigation.php',這意味着只有那些具有一個父代的文件才能夠與導航交互?如果我解釋錯了,請道歉。 – userrandomuser

+0

對不起,因爲我昨天去上班了,所以很晚纔回來。我指的是路徑對話框中的替換,您也可以在其中定義替換的範圍。因此,如果您的子目錄中存在路徑錯誤的文件,則可以替換該子目錄中應該產生所需結果的所有事件。如果不是,我誤解了這個問題。 – JensV