在页面上更改标题

时间:2014-10-05 14:47:53

标签: php url get

我有以下代码更改页面上的标题:

class.php

<?php
    class Title_And_Page
    {
        public $pagekey;
        public $title;
        public $page;
        private $pages = array(
                    'start_page'    => array("Startsida", "start_page.php"),
                    'products'      => array("Produkter", "products.php"),
                    'max_ot'        => array("Max-OT", "max_ot.php"),
                    'blog'          => array("Blogg", "blog.php"),
                    'tools'         => array("Verktyg", "tools.php"),
                    'about_us'      => array("Om oss", "about_us.php"));

        public function __construct($pagekey)
        {
            $this->pagekey      = $pagekey;
        }

        public function setTitle()
        {
            if(array_key_exists($this->pagekey, $this->pages))
            {
                $this->title = $this->pages[$this->pagekey][0]; //Returns the value in title, that it gets when the constructs is run
                return $this->title;
            }
        }

        public function includePage()
        {
            if(array_key_exists($this->pagekey, $this->pages))
            {
                $this->page = $this->pages[$this->pagekey][1]; //Returns the value in page, that will be included
                return $this->page;
            }
        }
    }
?>

这是我的index.php

中的一些代码
    if(isset($_GET['page']))
    {
        $page = $_GET['page'];
    }

    $page_title = new Title_And_Page($page);
<title><?= $page_title->setTitle(); ?></title>
<li id="info"><a href="?page=products" class='clickme'>Produkter</a></li>
        <li id="info"><a href="?page=max_ot">MAX-OT</a></li>
        <li id="info"><a href="?page=blog">Blogg</a></li>
        <li id="info"><a href="?page=tools">Verktyg</a></li>
        <li id="info"><a href="?page=about_us">Om oss</a></li>

这很有效。但是,我在博客页面中有文章包含“阅读更多”链接。当我点击“阅读更多”链接时,URL会更改为:index.php?page = blog&amp; readmore_from_firstpage = 1&amp; article_header = Vilkenkolhydratärbästattätateetträningen?

如上所示,如何将页面标题更改为$ _GET ['article_header']中的值?

1 个答案:

答案 0 :(得分:0)

只需扩展您的GET支票:

if(isset($_GET['article_header']))
{
    $page = $_GET['article_header'];
}
elseif(isset($_GET['page']))
{
    $page = $_GET['page'];
}

但是,由于您在课堂上检查该网页是否已列入白名单,因此您需要添加另一个变量以强制避免此类检查,或者只是打印出标题article_header在场。

以下是后者的一个例子:

$avoidClass = false;
if(isset($_GET['article_header']))
{
    $page = $_GET['article_header'];
    $avoidClass = true;
}
elseif(isset($_GET['page']))
{
    $page = $_GET['page'];
}

然后在HTML中:

<title><?= $avoidClass ? $page : $page_title->setTitle(); ?></title>

或者,可能是最简单的方法:

if(isset($_GET['article_header']))
{
    $page_title = $_GET['article_header'];
}
elseif(isset($_GET['page']))
{
    $page_title = new Title_And_Page($_GET['page'])->setTitle();
}
else
{
    $page_title = 'Default title here';
}

HTML

<title><?= $page_title ?></title>