Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP模板帮助_Php_Templates_Include - Fatal编程技术网

PHP模板帮助

PHP模板帮助,php,templates,include,Php,Templates,Include,所以我相信我之前的问题对于我想要什么是完全错误的。我道歉 无论如何,我认为有一个问题给我带来了问题:我目前正在使用一个PHP模板(我认为这是正确的措辞)。它名为“index.php”,包含我的布局和以下代码,这些代码从名为/content/的目录中调用正文的内容,如“About”“Contact”等 <?php $default = 'index'; //Whatever default page you want to display if the file doesn't exis

所以我相信我之前的问题对于我想要什么是完全错误的。我道歉

无论如何,我认为有一个问题给我带来了问题:我目前正在使用一个PHP模板(我认为这是正确的措辞)。它名为“index.php”,包含我的布局和以下代码,这些代码从名为/content/的目录中调用正文的内容,如“About”“Contact”等

<?php  
$default = 'index'; //Whatever default page you want to display if the file doesn't exist or you've just arrived to the home page.  
$page = isset($_GET['p']) ? $_GET['p'] : $default; //Checks if ?p is set, and puts the page in and if not, it goes to the default page.  
$page = basename($page); //Gets the page name only, and no directories.  
if (!file_exists('content/'.$page.'.php'))    { //Checks if the file doesn't exist  
    $page = $default; //If it doesn't, it'll revert back to the default page  
    //NOTE: Alternatively, you can make up a 404 page, and replace $default with whatever the page name is. Make sure it's still in the inc/ directory.  
}  
include('content/'.$page.'.php'); //And now it's on your page!  
?>  

整个页面的布局是否不同?或者随着网站内容的变化,页眉和页脚是否保持不变

如果是后者,您可以将其设置为两个文件(如“header.php”和“footer.php”)包含页眉代码和页脚代码,并且在它们之间有一个content div。您可以根据您所处的页面打印进入content div的任何内容,方式与上面设置代码的方式类似


这有意义吗?因此,您将有三个不同的包含文件,一个用于页眉,一个用于页脚,一个用于页面内容(取决于您所在的页面)

只需设置一个条件:

if ($page == $default) {
    //different layout
}
else {
    ....
}

如果我理解正确,您只需要从root index.php切换布局,如果有人单击您的链接,您将向root index.php传递一个“p”参数,该参数通过从/content文件夹加载文件来更改整个布局

<?php  
    if( isset($_GET['p'] ) ) {
        $default = 'index';
        if (!file_exists('content/'.$_GET['p'].'.php')) {  
            $page = $default;
        }
        $page = basename($page);
        include('content/'.$page.'.php'); //And now it's on your page! 

    } else {
            // your root index.php
    }
 ?>  

不,这不是一个模板,如果有什么我可以称之为控制器的话。模板是html和变量(无控制逻辑)。阅读MVC范例——这是C层,模板是V层。好的,这样我就不必在每个页面上不断更新布局,我可以从一个文件控制布局。我猜这是控制器?布局是从哪里来的?您需要在那里应用一些处理程序逻辑,例如,在所需条件下交换样式表。上面的代码只加载内容文件,本身无法根据需要进行调整。php包含所有HTML内容(布局),其中包括上面列出的php include脚本,这会将内容调用到布局的页面内容部分。它从/content/directory调用它。然而,我想有一个完全不同的头版布局。该页面的布局完全不同。这是我的问题。包含页面内容的主体没有侧栏,它只有一个大的div容器,并且背景图形也会发生变化。我如何在编码中实现这一点?抱歉,我不是PHP方面的专家:对于您的代码,我得到了:“解析错误:语法错误,第2行出现意外”是的,我的坏习惯是累了:有一个)缺少:if(isset($\u get['p'])){