结构我的网站布局和内容加载的替代方法


Alternative ways to structure my website layout and content loading

前段时间我为一款PC游戏创建了一个粉丝网站,我相信它还可以做得更好。基本上,现在我所有的页面都共享一个共同的页眉和页脚,页面之间唯一真正的区别是加载到主表格单元格中的内容。

目前,我正试图使"干净"的网址,每个页面在自己的目录与index.php文件。

例如,我的"About"页面位于/About/index.php中,但它可以通过转到/About

来访问。

下面是index.php在'about'目录中的样子:

<?php include '/home/content/69/7232369/html/loco_header.html' ?>
<tr><td>
    <table class="mainpagetable">
<tr>
    <td class="maincontent">
        <table class="contenttable" >
            <tr><td><div class="contenttop"><span class="newheader">About</span></div>
            <div class="contentmiddle" id="contentmiddle">
            <table class="newcontent">
            <tr><td>
            <br>
            <?php include 'about.html'; ?>
        </td></tr>
        </table>
        </div>
        <div class="contentbottom"></div></td></tr>
</table>
            </td>
    <td class="gap">
    &nbsp;</td>
<?php include '/home/content/69/7232369/html/site_footer.html' ?>

所以基本上,我用HTML创建了整个布局,通过使用表中的表来分隔网站的各个部分。我有一个PHP包括头,页面内容和页脚。我所有的页面看起来都是这样的,起初似乎是一个很好的方法,但是我最近切换到另一个主机,当我复制所有内容时,由于根目录的不同路径,没有一个包含头/页脚:

<?php include '/home/content/69/7232369/html/loco_header.html' ?>

这是一个痛苦的通过100+ php文件,并改变头/页脚包括在每个他们一个接一个。就在那时我意识到我可能做错了什么。

所以我的问题是:

1)在PHP中是否有函数返回您网站的根目录,以便我可以做一些像包含$root之类的事情。

"/header.html"?

2)我创建干净url的方法创建了相当多的额外目录和文件。是否有一种不同的推荐方法,我可以采用它来平稳运行并生成更少的文件(同时仍然是搜索引擎友好的)?

3)是否有更有效/更易于管理的方法将内容加载到页面的中心,这也可以很好地与具有干净url的方法一起工作(参见问题#2)?我想到了AJAX,但是我希望有一个实际的URL链接到每个内容页面,而不是在没有URL更改的情况下在主页中间动态加载所有内容。老实说,我不知道是否有一个好的解决方案。

4)是否认为使用表中的表来构建我的布局是不好的做法?正如你所看到的,我在表格标签的中间分割了我的HTML代码,并把它放在3个不同的文件(页眉,索引,页脚)来构建我的网站。这对我来说似乎很糟糕。

如果它有助于澄清我的网页结构,这里有一个链接到我的网站:http://locohq.com/about/

任何帮助都是感激的,谢谢!

包含可以是相对的而不是绝对的。

<?php include 'site_footer.html'; ?>

我相信你要找的可能是:

    <?php 
        $_SERVER['DOCUMENT_ROOT'];
    ?>

,但如果没有,你可以看到$_SERVER数组中的所有内容,你必须通过执行:

    <?php
        echo '<pre>';
        print_r($_SERVER);
    ?>
祝你好运,希望这是你正在寻找的…我今天有点缺咖啡因!

p。S我发现这个问题,因为我试图寻找最有效的方式来加载内容到一个布局,将更新与我发现以后!

我最终删除了所有的表,并用元素替换它们,并使用CSS进行适当的结构。

为了加载我的内容,我做了一个主索引页,中间有一个content容器。在这个容器中,我放入了一个简单的PHP代码块:

<?php 
        if(isset($_GET["content"])){
            $file = $_GET["content"] . ".php";
            if (file_exists($file))
                include($file); 
            else
                echo "Cannot find page <b>" . $_GET["content"] . "</b>";
        }
        else
            echo "No content loaded";
?>  

基本上我加载内容到我的页面链接到main.php?Content =page,无论内容是什么,代码都被加载到容器中。

为了避开丑陋的URL,我使用mod_rewrite并将其放入我的。htaccess

RewriteEngine On
RewriteBase /
RewriteRule ^([a-zA-Z0-9]+)$ pages/main.php?content=$1

因此,如果我输入URL www.example.com/about,它将加载www.example.com/pages/main.php?content=about,然后文件/pages/about.php中的代码将被加载到我的内容容器中。如果用户试图访问一个不存在的页面,它将加载主页,并在内容容器内显示一条消息,表明他们正在寻找的页面不存在。