0

いくつかのフォルダーとページを含むフォルダーがあるとします。

  • フォルダA
    • PageA1.php
  • フォルダB
    • フォルダB1
      • PageB11.php
    • フォルダB2
      • PageB21.php
    • PageB1.php
  • フォルダC
    • PageC1.php

PageB11には、のものがあります。

require_once 'FolderB2/PageB21.php';

PageB1PageB11を呼び出している間:

require_once 'FolderB1/PageB11.php';

順調です。しかし、問題は、PageB11にはページ自体を呼び出す関数もありますが ( PageB11 )、エラーが表示されたことです:

Warning: require_once(FolderB2/PageB21.php): failed to open stream: No such file or directory in Path\FolderB\FolderB1\PageB11.php on line X

PageB11の require_once 行を次のように変更すると、次のようになりrequire_once '../FolderB2/PageB21.php'ました。

私がやりたいのは、さまざまなレベルのフォルダーですべてにアクセスできるようにする方法です。それは可能ですか?ありがとう..

4

3 に答える 3

1

前述のように、このような状況を処理する最善の方法は、各ファイルを絶対パスで参照することです。これは、現在のファイルによって相対的に指定される相対パスとは異なり、ファイルシステムのルートからのパスです。

PHP に__DIR__は、現在のファイルの絶対パスを与える魔法の定数 があります。すべての include/require の先頭にそれを追加すると、その問題は二度と発生しなくなります。

require_once __DIR__ . '/../FolderB2/PageB21.php';

を利用することもできますrealpath()

于 2012-08-07T06:37:21.280 に答える
0

オリジナルを参照して、各ディレクトリにソフトリンクを作成することもできます。ただし、これは他のすべての方法が失敗した場合にのみ使用する必要がある回避策です。

于 2012-08-07T06:43:50.967 に答える
0

ファイルへの絶対パスを追加できます

require_once('/home/my_host_account/www/FolderB2/PageB21.php');

これが機能しているかどうかを確認してください。

于 2012-08-07T06:31:35.977 に答える