HTMLでWebサイトを作成しましたが、ヘッダーとナビゲーションバーの部分を1つのファイルにまとめたいので、一度変更するだけで済みました。すべてのページを.phpに変更し、phpインクルードを追加しました。ただし、フォルダに入れたページでエラーが発生するため、無謀なリンクを作成できます。
ヘッダーファイル:/test/assets/header.php
動作:/test/index.php
には<?php include 'assets/header.php'; ?>
が含まれています
エラーをスローします:/test/company/index.php
には<?php include '/test/assets/header.php'; ?>
が含まれます
エラー:
Warning: include(/test/assets/header.php) [function.include]: failed to open stream: No such file or directory
Warning: include() [function.include]: Failed opening '/test/assets/header.php' for inclusion (include_path='.:/usr/local/lib/php:/usr/local/php5/lib/pear')
ルートフォルダ内のフォルダにあるヘッダーファイルへのリンクに問題があります。 URLの入力方法がわからないという単純な問題だと思います。 header.phpへのフルパスを含めようとすると、URL file-access is disabled
エラーが発生します
/
でパスを開始する場合、それは絶対パスです。仮想ではなく、実際のファイルシステムルートディレクトリへの絶対メイン document root
。これが失敗する理由です。
一般的にこれは意味されたものです:
include "$_SERVER[DOCUMENT_ROOT]/test/assets/header.php";
// Note: array key quotes only absent in double quotes context
私も同じ警告に直面していました:
Warning: include(/test/assets/header.php) [function.include]: failed to open stream: No such file or directory
Warning: include() [function.include]: Failed opening '/test/assets/header.php' for inclusion (include_path='.:/usr/local/lib/php:/usr/local/php5/lib/pear')
私は次の解決策でそれらを解決しました:
パスを定義してから、次のようにinclude関数を使用する必要があります。
define('DOC_ROOT_PATH', $_SERVER['DOCUMENT_ROOT'].'/');
require DOC_ROOT_PATH . "../includes/pagedresults.php";
その後、任意のディレクトリ構造を使用できます。
それはnot URLです。これはファイルパスです(ただし、サーバー構成で許可されている場合は、can use full URLを使用します)。