phpにてwebページを作っていますが、一番上の階層にindex.phpなどがあります。そして、2階層目にcssはcssフォルダ、それと、同じく2階層目にblogなどのフォルダを作って、blog.phpを入れています。headerは一階層目にheader.phpを作って、index.phpからなら\u0026lt;?php include('header.php'); ?\u0026gt;で呼び出しているわけですが、index.phpとheader.phpは並列だからいいとして、blog.phpからheader.phpを呼び出す時に、\u0026lt;?php include('../header.php'); ?\u0026gt;としているわけですが、その時、header.phpの中のcssフォルダの指定もstyle.cssなら../style.cssとしなければいけないのに、それはできないですよね?こういう時に何かいい方法はありますでしょうか?絶対参照なら分かります。相対参照でお願いします。

1件の回答

回答を書く

1263337

2026-07-31 07:55

+ フォロー

作成してみました。こんな感じのフォルダ構成にしています。



er8.s323.xrea.com/x/folderpath/

index.php

header.php

/css/style.css

/blog/blog.php





header.php が style.css を参照する。index.php blog.php で表示出来るようにします。



以下のコードのように記述すると可能になります。





\u0026lt;head\u0026gt;

\u0026lt;meta charset=\u0026quot;UTF-8\u0026quot;\u0026gt;

\u0026lt;meta name=\u0026quot;viewport\u0026quot; content=\u0026quot;width=device-width, initial-scale=1.0\u0026quot;\u0026gt;



\u0026lt;?php

if(!isset($pageTitle)) {

$pageTitle = \u0026quot;共通ヘッダー\u0026quot;;

}



// プロジェクトルートからの相対パスを固定する

// blog.php でも index.php でも共通で読み込める

$cssPath = '../css/style.css'; // blog.php から見た path

if (basename($_SERVER['SCRIPT_NAME']) === 'index.php') {

$cssPath = 'css/style.css'; // index.php から見た path

}

?\u0026gt;

\u0026lt;title\u0026gt;\u0026lt;?= htmlspecialchars($pageTitle) ?\u0026gt;\u0026lt;/title\u0026gt;

\u0026lt;link rel=\u0026quot;stylesheet\u0026quot; href=\u0026quot;\u0026lt;?= $cssPath ?\u0026gt;\u0026quot;\u0026gt;



\u0026lt;/head\u0026gt;

うったえる有益だ(0シェアするブックマークする

関連質問

Copyright © 2026 AQ188.com All Rights Reserved.

博識 著作権所有