• ベストアンサー

PHPで任意のページの場合にソースを記述

自作でテンプレートを作成してみています。 現在、index.phpの場合にのみ表示させたいCSSリンクがあり、 このおかげで、ヘッダーテンプレートを2つ作成しなければならない状態です。 そこで、質問ですが、 任意のファイル名(index.phpやcontent.phpなどの場合)にのみ表示させるには どうすればいいでしょうか? 例えば、index.phpの場合にのみ、 <link rel="stylesheet" type="text/css" href="css/index.css"> を追記したいなどです。

  • egtomo
  • お礼率59% (101/170)
  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.2

テンプレートはphpスクリプトにincludeで読込んでいるんですよね(readfileなら何もやりようがないので)。 $_SERVER['SCRIPT_NAME'] をチェックすればいいのでは? <?php if ($_SERVER['SCRIPT_NAME'] === '/index.php') { print '<link rel="stylesheet" type="text/css" href="css/index.css">' . PHP_EOL; } ?>

egtomo
質問者

お礼

if ($_SERVER['SCRIPT_NAME'] === '/index.php') { このままだとディレクトリパスが入ってしまうので、下記で行けました。 if(basename($_SERVER["SCRIPT_NAME"]) == "index.php") $_SERVER["SCRIPT_NAME"]の存在を忘れていました。 ずっと悩んでいたので、助かりました。 ありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

<?PHP if(basename($_SERVER["SCRIPT_NAME"])=="index.php"){ print '<link rel="stylesheet" type="text/css" href="css/index.css">'.PHP_EOL; } ?>

関連するQ&A

  • 一部のページにデフォルトCSSを読み込ませない方法

    一部ページにCSSを読み込ませない方法がありましたら、 ご教授ください。 例えば、 全ページに以下のCSSを共通で読み込ませてあります。 <link rel="stylesheet" type="text/css" media="screen" href="css/common.css" /> <link rel="stylesheet" type="text/css" media="screen" href="css/index.css" /> しかし、test.htmlだけ <link rel="stylesheet" type="text/css" media="screen" href="css/index.css" /> を読み込ませたくありません。 つまり、 <link rel="stylesheet" type="text/css" media="screen" href="css/common.css" /> は通常通り読み込んで、 <link rel="stylesheet" type="text/css" media="screen" href="css/index.css" />のみを 除外したいです。 * 共通のCSSは外すことはできません。 * また、CSSを新たに追加することもできません。 * head内にスクリプトを記述することができますが、スクリプトの記述で解決できますでしょうか。 自分で検索もしてみたのですが、答えに辿りつけません。 どのような方法がありますでしょうか。 何か方法がありましたら、ご教授ください。 よろしくお願いいたします。

    • 締切済み
    • CSS
  • phpでこのイコールは代入演算子ですか? <l

    phpでこのイコールは代入演算子ですか? <link rel="stylesheet" type="text/css" href="stylesheet.css"> ↑このイコールです link relにstylesheetを代入するという意味ですか? ↓他にもたくさんありますが、このイコールは代入演算子なんですか? <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Progate</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"> </head> <body>

    • ベストアンサー
    • PHP
  • CSS のときのヘッダの記述

    <link rel="stylesheet" href="style.css" type="text/css" /> の link rel = の ●「 rel 」って何の省略なのでしょうか? また、 ●href は Hyper link REFerence の略でしょうか?

    • ベストアンサー
    • HTML
  • CSSの読み込み開始までラグがあります

    header.php、main.php、footer.phpの3ファイルを作成して、 index.phpに include './header.php'; include './main.php'; include './footer.php';などとして読み込ませました。 cssファイルは、header.phpの<head>に <link rel="stylesheet" type="text/css" href="header.css"> <link rel="stylesheet" type="text/css" href="main.css"> <link rel="stylesheet" type="text/css" href="footer.css"> の形で記述されています。 javascriptがあり、これも同様に<head>に記述されています。 以上のファイルはすべて同じフォルダ内にあり、これをlocalhostで表示させました。 これをchromeで要素を検証してみたところ、 cssの読み込み開始までに2秒近いラグがあります。 このラグの考えられる原因は何があるでしょうか。 どなたか心当たりのある方、教えてください。よろしくお願いします。

    • ベストアンサー
    • CSS
  • 外部ファイルを読み込んだhtmlをinclude

    外部ファイルを読み込んだhtmlをincludeしたいです。 ディレクトリの階層は、 index.php style.css /pic/picture.html /pic/css/style1.css /pic/css/style2.css : /pic/css/style13.css /pic/js/jquery1.js /pic/js/jquery2.js : /pic/js/jquery15.js : (画像などが他にもいっぱい) となっています。 ----- picture.html内には <link rel="stylesheet" type="text/css" href="css/style1.css"> <link rel="stylesheet" type="text/css" href="css/style2.css"> : <link rel="stylesheet" type="text/css" href="css/style13.css"> <link rel="stylesheet" type="text/css" href="js/jquery1.js"> <link rel="stylesheet" type="text/css" href="js/jquery2.js"> : <link rel="stylesheet" type="text/css" href="js/jquery15.js"> : と書かれています。 ---- このときindex.phpのbody内に <?php include('./picture.html'); ?> とした場合、相対パスによる記述なのでpicture.html以外のcssやjsは適用されませんよね。 しかし/pic/内にあるすべてのpicture.htmlに関係するファイルは非常に数が多いので、これらすべてをincludeするのは厳しいです。 すべての外部ファイルを読み込んだ状態のpicture.htmlをbody内に表示したいのですが、そんなことは可能でしょうか。 どなたかご教示ください。どうかよろしくお願いします。

    • ベストアンサー
    • PHP
  • php?でスマホ用のCSSへ切り替える記述について

    php?でスマートフォン用のCSSへ切り替える記述について質問です。 HTML/CSSの知識はあるのですがPHPについてはさっぱりで… お力を頂ければと思います。 今度CSSの切り替えでスマートフォン用のサイトを表示することになったのですが、 一部システムが絡んでいるため切り替え方が分かりません。 拡張子は.ctpです。 HTML/CSSで下記の記述にしています。 <link rel="stylesheet" type="text/css" href="../_common/css/import.css" media="all and (min-width : 706px),print" /> <link rel="stylesheet" type="text/css" href="../_common/css/_phone/import.css" media="only screen and (max-width : 705px)" /> PHP?でCSSを読み込む部分は <?php echo $this->Html->meta('icon'); echo $this->Html->css('/_common/css/import.css'); echo $scripts_for_layout; ?> と記述されています。 上記にどういった記述を加えればHTML/CSSのような切り替えが可能でしょうか? もしくは、全く別の部分をいじらなければならないのでしょうか? よろしくお願い致します。

    • ベストアンサー
    • PHP
  • IE8でページの一部が表示されない

    CSSテンプレートを利用して作成したページの、ヘッダーや周りの色つき部分、フッターが正しく表示されません。Chromeでデバッグした際は問題ないのですが、なぜでしょうか? CSSも初心者のためよく解析ができていません。 HTMLでは次の宣言をしてありますが、これに問題があるのですか? すみませんがお願いします。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html><head><title>********</title> <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> <meta content="text/html; charset=utf-8" http-equiv="Content-Type"> <link rel="stylesheet" type="text/css" href="style1.css"> <meta name="GENERATOR" content="MSHTML 8.00.6001.19019"></head>

  • CSSで、外部スタイルシートを2つ指定した場合。

    たとえば、 <link href="style.css" rel="stylesheet" type="text/css"> <link href="info.css" rel="stylesheet" type="text/css"> のように2つスタイルシートを指定した場合、同じ内容のスタイルシートを書き込んだ場合どちらが優先されるのでしょうか。

    • ベストアンサー
    • HTML
  • CGI実行できない。ソースが表示される

    サーバを移し変えたところ、Perlで書いたCGIが実行できません。 ソースがそのまま表示される部分があります。 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <META HTTP-EQUIV=Content-type CONTENT=text/html; charset=Shift_JIS><LINK REL="SHORTCUT ICON" HREF="../favicon.ico"> <LINK REL="stylesheet" HREF="style.css" type="text/css"> ヘッダー部分です。 上記のまま表示されます。 ヘッダー部分を直すんでしたっけ? 前に経験あって、クリアしたのですが、解消法忘れました。 同じソースを実行して全部が全部実行できないわけではありません。 文字コードではなかったような気がしますが。

    • ベストアンサー
    • CGI
  • type="text/css"

    <link rel="stylesheet" type="text/css" href="http://web.fc2.com/css/index.css"> と <link rel="stylesheet" href="http://web.fc2.com/css/index.css"> では意味同じですか? type="text/css"は省略したほうがいいのでしょうか? しない方が良いのでしょうか?

    • ベストアンサー
    • CSS

専門家に質問してみよう