0

私の Web サイトには、ディレクトリに編成された複数のファイルが含まれています。より具体的には、これは私の構造です:

  • index.php
  • ページ/アカウント/viewaccount.php
  • ページ/アカウント/createaccount.php
  • ページ/アカウント/editaccount.php
  • ページ/aboutus/aboutus.php
  • src/php/functions.php

これを理解できない場合、またはさらに情報が必要な場合は、コメントを追加してください

functions.php 内で、インデックス ファイルを参照するリンクを作成します。この関数はすべてのメイン .php ファイルから呼び出されるため、インデックス ファイルへのパスは関数を呼び出すページによって異なります。

たとえば、関数がインデックス ファイルによって呼び出される場合、パスは明らかに "index.php" になります。ただし、関数が viewaccount.php ファイルから呼び出される場合、必要なパスは「../../index.php」になります。

したがって、私の問題は次のとおりです。

関数を呼び出すファイルとは無関係に、常にインデックスファイルに正しくリンクする一般的なパスを設定するにはどうすればよいですか。

簡単な修正として、メインのすべての PHP ファイルを兄弟としてインデックスに配置しますが、すべてのファイルを整理しておきたいと考えています。

4

2 に答える 2

2

ほとんどの php フレームワークは次のように動作します。zend フレームワークは次のように動作します。

定数 APPLICATION_PATH を宣言してから、すべてのパスをこのパスに相対させます。

define("APPLICATION_PATH", "/var/www/mysite");

そして、必要なものはすべてAPPLICATION_PATHに関連しています。

require_once APPLICATION_PATH ."/system/helpers/{$helper}.php";

*このアプローチを使用すると、問題なく任意のスクリプトからファイルを含めることができます。すべてのパスが APPLICATION_PATH からの相対パスになるためです。

于 2012-11-08T19:33:39.423 に答える
2

このようなもの:

require_once($_SERVER['DOCUMENT_ROOT'] . '/src/php/functions.php');
于 2012-11-08T19:33:57.740 に答える