如果身体类在家,使用PHP显示不同的标题徽标图像?

时间:2012-01-22 15:37:55

标签: php image class function include

我正在一个主页背景较暗的网站上工作,但所有其他网页都有白色背景。

我正在使用pho来包含一个头文件,以便在每个页面上显示徽标,导航栏,电话详细信息等。

由于主页背景较暗,徽标上有白色文字,但其他页面上的徽标使用时带有深色文字。

我正在寻找一种使用php的方法,所以我在每个页面上都包含一个头文件。如果主页有一类“主页”,则显示带有白色文本的徽标图像,并在所有其他页面上显示带有深色文本的徽标图像。

这些内容:

if (body class="home") {

<img src="images/logo-with-white-text" />

else {

<img src="images/logo-with-dark-text" />

};

这可能吗?

非常感谢任何帮助或建议:)

4 个答案:

答案 0 :(得分:4)

我假设您的主页目前看起来像这样:

<html>
    <head>...</head>
    <body class="home">
        ...
        <?php include 'header.php'; ?>
        ...

您可以将该类设为变量,并从包含的头文件中引用此变量:

<?php $class = 'home'; ?>
<body class="<?php echo $class; ?>">
...
<?php include 'header.php' ?>
...

在header.php中:

<?php if (isset($class) && $class == 'home'): ?>
    <img src="images/logo-with-white-text" />
<?php else: ?>
    <img src="images/logo-with-dark-text" />
<?php endif; ?>

答案 1 :(得分:3)

您可以使用以下代码段检查您是否在主页上(具体取决于您的确切实施):

if (basename($_SERVER['SCRIPT_NAME']) == 'index.php') {
    // home page
}
else {
    // some other page
}

$_SERVER['SCRIPT_NAME']包含相对于主机的实际加载文件,直到查询字符串:

  

http://example.com/my/folder.php?a=b =&gt; /my/folder.php

有关详细信息,请查看basename in the PHP manual

答案 2 :(得分:1)

$_SERVER['REQUEST_URI']包含当前页面网址(在域名之后)。您可以检查该页面是否包含主页网址。

根据您的设置,您可以使用

<?php if ($_SERVER['REQUEST_URI'] == '/') : ?>
    <img src="images/logo-with-white-text" />
<?php else: ?>
    <img src="images/logo-with-white-text" />
<?php endif; ?>

答案 3 :(得分:1)

如果您使用image replacement technique来显示图片,则不需要PHP。

基本上,您使用<h1>或其他内容作为徽标,使用文字,然后使用否定text-indent隐藏文字,设置高度和宽度,并使用背景图片作为徽标。例如:

http://jsfiddle.net/nwNbb/

<h1 id="logo">My Website</h1>
#logo {
 text-indent:-999px;
 background:url(/path/to/logo.png);
 height:100px;
 width:500px;   
}

然后,在CSS中,您可以根据正文类更改背景图像:

body.home #logo {
 background:url(/path/to/alternate-logo.png);
}

您实际上也可以在图像上替换图像

http://jsfiddle.net/nwNbb/3/

img {
     /* 500x100 replacement image */
    background:url(http://lorempixum.com/500/100);

     /* hide original image */
    width:0;
    height:0;

     /* use padding to set width/height of replacement */
    padding:50px 250px;
}