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

时间:2011-10-31 20:31:34

标签: php html css ajax

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

目前,我试图通过将每个页面放在其自己的目录中并使用index.php文件来制作“干净”的URL。

例如,我的“关于”页面位于/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中是否有返回您网站根目录的功能,以便我可以执行类似include $ root的操作。 “/header.html”?

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

3)是否有更高效/更易于管理的方法将内容加载到我的页面中心,这也可以很好地使用一个方法来获得干净的URL(参见问题#2)? AJAX浮现在脑海中,但是我希望有一个指向每个内容页面的实际URL链接,而不是在没有更改URL的情况下将所有内容动态加载到我的主页中间。老实说,我不知道是否有一个很好的解决方案。

4)在表格中使用表格来构建我的布局是不是很糟糕?正如您所看到的,我正在将表格标记中间的HTML代码拆分并将其放在3个不同的文件(标题,索引,页脚)中以构建我的网站。这对我来说似乎很糟糕。

如果有助于澄清我的网页结构,请点击此处链接指向我网站上的网页:http://locohq.com/about/

感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:1)

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

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

以上可能适合你。

答案 1 :(得分:0)

我相信你的目标可能是:

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

但如果没有,您可以通过执行以下内容查看您必须使用的$_SERVER数组中的所有内容:

    <?php
        echo '<pre>';
        print_r($_SERVER);
    ?>
祝你好运,希望这就是你所寻找的...我今天有点被咖啡因剥夺了!

P.S我发现了这个问题,因为我正在寻找将内容加载到布局中的最有效方法,稍后会用我发现的内容进行更新!

答案 2 :(得分:0)

我最终删除了所有表格并用元素替换它们并使用CSS正确构造。

为了加载我的内容,我只是制作了一个主索引页面,其中间有一个“内容”容器。在该容器中,我放了一个简单的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并将内容加载到容器中的代码加载到我的页面中。

为了解开这个丑陋的网址,我使用了mod_rewrite并将其放入我的.htaccess

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

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