我正在努力弄清楚如何通过使用include_once('asset / header.php')函数包含php / html模板文件来使我的生活更轻松。我也想将它用于每个网页上的css和js链接。 一个例子是:
<link href="css/font-awesome.min.css" rel="stylesheet">
我希望通过这些方法实现的目标是能够在链接之前添加“ROOT”或$ baseURL,因此:
<link href="<?php $baseURL ?>/css/font-awesome.min.css" rel="stylesheet">
和
include_once ('$baseURL/asset/header.php')
我知道上面的内容远远不够,我对php编程没有经验,我只知道它可以让我的生活在文档路径方面变得更容易。
我想解决的问题很简单:
我不想<img src="../../../../img/IMAGE.jpg>
和include_once ('../../../assets/header.php')
^^当然这里有例子
我只想在php,css,html等文档路径之前放一个php的通用代码来打印根URL,它将包含或导入。
我已经阅读了一些有关此问题的教学论坛,但遗憾的是,我无法通过有限的PHP体验找到答案。我想将php根文件放在config.php中并尽可能限制直接访问?
另外,我目前正在Mac上使用MAMP。我听说localhost可能无法使用某些解决方案,所以任何建议都会很棒!
答案 0 :(得分:1)
尝试使用$ _SERVER超全局
include_once $_SERVER['DOCUMENT_ROOT'].'/website/asset/header.php';
realpath和dirname命令也可能有用。
答案 1 :(得分:0)
首先,您需要声明您的根变量:
$baseURL = "../.."; // or whatever it is
然后你就可以在include中使用变量:
include_once("{$baseURL}/asset/header.php"); // means include_once("../../asset/header.php");
只要确保将路径放在include_once中,就可以使用DOUBLE引号而不是单引号,否则就无法合并上面的变量。
编辑:要记住一件事,$ baseURL必须在include的范围内。如果它是全局的并且您在函数内部使用它,请确保将其声明为全局函数。有关范围的更多信息:http://php.net/manual/en/language.variables.scope.php
答案 2 :(得分:0)
为什么不试试$ _SERVER ['SERVER_NAME']函数?
示例:
Echo("http://".$_SERVER['SERVER_NAME']."/asset/header.php")
答案 3 :(得分:0)
你可以试试这个:
require_once '../header.php';