1

私は現在PHPプロジェクトに取り組んでいます。プロジェクトファイルをローカルボックスにコピーします。1つを除いて正常に動作します。

フォルダ階層は次のとおりです。

root/index.php
root/event/admin/list.php 
root/event/admin/functions.php

index.phpには、次の行があります。

<?php include ("event/admin/list.php"); ?>

これにはlist.phpが含まれている必要があります

ただし、list.phpには次の行があります。

<?php include_once "event/admin/functions.php";?>

list.phpがルートディレクトリにevent/admin/functions.phpないため、呼び出しが行われず、ローカルindex.phpでこの部分を読み込めませんでした。しかし、プロダクションは正常に機能しています。

誰かが何が起こったのか知っていますか?include / include_onceを設定する方法は、$ _ SERVER ["DOCUMENT_ROOT"]のようなものを使用せずに、常にROOTディレクトリを使用しますか?どうもありがとう。

4

4 に答える 4

2

私の意見では、$ _SERVER['DOCUMENT_ROOT']を使用することをお勧めします。あなたはこのようにそうすることができます:

include_once($_SERVER['DOCUMENT_ROOT'] . "/path/to/file.php");

ただし、list.phpのコードを次のように置き換えてみてください。

<?php include_once "../../event/admin/functions.php";?>

これは、相対パスに関連する既知の問題です。したがって、DOCUMENT_ROOTが推奨されます。または、include_pathを編集することもできます。

于 2012-04-27T03:18:31.123 に答える
1

インクルードパスを、probjectに役立つものに設定します。

于 2012-04-27T03:17:51.990 に答える
0

これは、相対パスに関連する一般的な問題です。絶対パスからファイルを含めるか、php.iniのinclude_pathを変更してドキュメントルートを使用し、そこに関連するファイルを指定することができます。

于 2012-04-27T03:17:07.080 に答える
0

2 台のマシンのインクルード パス構成を比較します。

于 2012-04-27T03:22:09.763 に答える