0

私は PHP を学んでいて、include キーワードがいかに便利であるかを発見したばかりで、私が働いている会社のために構築したサイトの 1 つでそれを使い始めました。

現在、これを適用しているサイトでは、Web サイトのセクションに Perch CMS を使用し、Perch ブログ拡張機能を使用しています。

ルート ディレクトリにあるすべてのファイルでインクルードが機能していますが、ファイルの 1 つは Perch CMS ブログ テンプレートで、いくつかのサブディレクトリにあり、PHP インクルードはこのファイルでは機能しません。

含めようとしているファイルのディレクトリは../inc/です。

インクルードが機能しないPerch ブログ テンプレートのディレクトリは../perch/templates/blog/です。

[編集]重要なことを言い忘れて申し訳ありませんが、このインクルードを使用しているファイルは、ブログ投稿を表示する方法のテンプレートとして Perch CMS によって使用されます。これは通常の .html ファイルです (ただし、 php を .html ファイルで実行できるようにする .htaccess ファイル内の行)。[/編集]

私は wamp を使用しており、wwwディレクトリには、それぞれが異なるプロジェクトのルート ディレクトリとして機能する複数のフォルダーがあります。これは、アドレスとしてprojectName.localhostを使用してセットアップされ、機能しています。たとえば、そのうちの 1 つはf3racingと呼ばれ、アドレスはf3racing.localhostで、フォルダー構造はwamp/www/f3racing/です。

他のすべてのファイル (ルート ディレクトリにある) では、次のように動作します。

<?php include("inc/header.php"); ?>

私はこれらを試しました:

<?php include("../../../inc/header.php"); ?>

<?php include($_SERVER["DOCUMENT_ROOT"] . "/inc/header.php"); ?>

<?php include($_SERVER['DOCUMENT_ROOT'] . "/inc/header.php"); ?>

<?php include($_SERVER["DOCUMENT_ROOT"] . "/f3racing/inc/header.php"); ?>

<?php
     include(
       $path = $_SERVER['DOCUMENT_ROOT'];
       $path .= "/inc/header.php";
       include_once($path);
     );
?>

これを機能させるために何をネストすればよいか、私は完全に困惑しています。通常の状況では、これらのいずれかが機能するはずですか? つまり、Perch CMS を使用していない場合、これらは機能しますか?

4

3 に答える 3

1

使い方が../間違っています。

../「1つ上のディレクトリに移動する」ことを意味します。

ファイルが存在する場合、そのファイルで/usr/var/www/path/実行include('../anotherfile.php')するとファイルが検索されます/usr/var/www/anotherfile.php(ディレクトリを上に移動したことに注意してください)。

あなたのファイルは に/usr/var/www/perch/templates/blog/あり、 のファイルを参照したいと考えています/usr/var/www/inc/。したがって、3 つのフォルダーに「戻る」必要があり (そのフォルダーにいるためwww)、ディレクトリを参照してincからファイルを参照する必要があります。

インクルードは次のようになります。

include('../../../inc/header.php');

それを試してください、それはうまくいくはずです。

編集: wamp についてはよくわかりませんが/usr/var/www、上記の例のビットをc:/Program Files/WAMP/www、ディレクトリ パスのようなものと交換できると思います。それはすべて同じ理論です。

于 2013-06-13T13:49:18.813 に答える
0

何が問題なのかわかりません:

<?php include("../../../inc/header.php"); ?>

あなたの説明から私が収集できるものから、あなたはファイルを持っています:

root/inc/header.php

そして別のファイル:

root/perch/templates/blog/some_file.php

上記が含まれていますinclude

これをテストしたのは、をheader.php格納してecho "header.php";からロードしたことsome_file.phpです。

于 2013-06-13T14:27:50.400 に答える