php - 在每个 php 页面 inc 子文件夹中包含 css

标签 php html css twitter-bootstrap

我正在创建我的第一个(基本)php 应用程序,并且想开始,因为我的意思是继续关于文件路径和全局变量 - 这对我来说是很新的。我现在有什么工作但是我想知道是否有更有效的方法(用于 future 验证/扩展)

我有一个简单的文件结构如下;

- css
 -- bootstrap.css
- lib
 -- display.php
- template
 -- header.php
 -- footer.php
- admin
 -- login.php
- globals.php
- index.php

我想在每个页面上包含我的 css (bootstrap.css)。我在我的 global.php 中声明了一个全局变量,如下所示;

<?php define('URL', 'http://localhost/myLocalSite'); ?>

在我的 display.php 中包含了 css;

<link href="<?php echo URL ?>css/styles.css" rel="stylesheet">
<link href="<?php echo URL ?>css/bootstrap.min.css" rel="stylesheet">

我使用以下代码将它们包含在我的 index.php 中;

<?php include('globals.php') ?>
<?php include('template/header.php') ?>
<?php include('lib/display.php') ?>

我使用以下内容(不是子文件夹位置)将它们包含在我的 login.php 中;

<?php include('../globals.php') ?>
<?php include('../template/header.php') ?>
<?php include('../lib/display.php') ?>

每当在子目录(如上面的 login.php)中处理文件时,我总是需要包含 ../ 以包含文件或者有更好的方法吗?

就像我说的那样有效,我是新手,所以非常感谢您的建议。

最佳答案

您可以将 index.php 作为您的 Router,然后重写对它的请求。
然后你可以在索引文件中声明一个常量并从中加载其他文件。

define('ROOT', dirname(__FILE__));

然后你可以像这样在任何地方包含文件

require(ROOT.'/globals.php');
require(ROOT.'/template/header.php');
require(ROOT.'/lib/display.php');

仅用于示例路由器: .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

然后你可以在 index.php 中做任何事情,例如:

   <?php
    $uri = $_SERVER["REQUEST_URI"];
    require "templates/header.php";
    switch ($uri) {
        case "/":
            include "views/index.php";
            break;
        case "/login":
            include "admin/login.php";
            break;
        case "/something":
            include "views/something.php";
            break;
        default:
            include "views/404.php";
            header("HTTP/1.0 404 Not Found");
            break;
    }
    require "template/footer.php";

future 的改进:

  • 您可以通过某种方式使其自动化,而不是为每个案例创建下一个案例 文件

  • Some tutorial on php routing ,但要注意安全原因 - 不要包含 secret 文件

关于php - 在每个 php 页面 inc 子文件夹中包含 css,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31158469/

相关文章:

HTML 空白 : spaces before and after <br>

javascript - 粘性标题没有完全固定

php - 如何在 Laravel 上使用 Carbon 将 created_at 日期显示为分钟/天前格式?

php - Mysql 或查询

php - 在 iOS + php 中使用 braintree 生成客户端 token

html - 在标签中使用带有 CLASS 的 ID

javascript - 使用带有缩放和滚动功能的网页加载 IFrame

javascript - 如何每 10 秒捕获一次帧并将其发送到服务器?

css - 如何更改 Twitter Bootstrap 3 中的 div col 顺序

php - 有没有办法在不使用 ffmpeg 的情况下通过 PHP 创建视频缩略图?