0

嗨,我正在尝试让一段 html 仅显示在http://www.domain.com/的主页上...我编写了下面的代码,但它不起作用 HTML 显示不管页面,我错过了什么吗

<?php
$hweb .= 'http://' .$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
if ($hweb == 'http://www.domain.com/'):
?>          
                    <div style="margin:0 auto;">
                        <div style="float:left">



<?php endif; ?>
4

4 回答 4

1

首先 - 请改变

$hweb .= 'http://' .$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

进入

$hweb = 'http://' .$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

$hweb 可能在之前的某个地方被初始化。

第二:

只要您请求“http://www.domain.com/somename.php”,您的 if 条件就永远不会被执行。REQUEST_URI 将始终包含“/somename.php”,除非您使用一些 url 重写。

第三:确保所有呼叫都转到“http://www.domain.com”而不是“http://domain.com”。子域配置有时非常复杂。

于 2012-07-03T19:11:11.657 回答
0

解决方案 1:如果上面的代码写在“ http://www.domain.com/index.php ”文件中,那么它可能工作正常。解决方案 2:否则请确保 $hewb 在此代码之前 b4 设置为空值,以便“.=”不会添加额外的值 b4 'http...'。

现在

$hweb = '';

echo $hweb .= 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

于 2013-03-24T15:05:47.920 回答
0

冒着再次出错的风险..

为什么不在包含头文件之前初始化主文件中的变量

<?php 
$mainfile = true;
?>

然后在标题中

<?php

if ($mainfile===true)
....

这样主文件可以被称为任何东西并被放置在任何地方。

于 2012-07-03T19:33:46.513 回答
-3

那是因为 HTML 在 php 文件中是内联的,但在 PHP 标记之外。您可以简单地在 if 中回显 HTML。

if ($hweb == 'http://www.domain.com/')
{
    echo '<div style="margin:0 auto;">';
    echo '<div style="float:left">';
}

或者如果你有很多 HTML,你可以这样做

<?php 
    ob_start();
?>

<html>
<body>
<p>This HTML only be echoed </p>
</body>
</html>

<?php   
    $hweb .= 'http://' .$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 
    if ($hweb == 'http://www.domain.com/'):
    {
        ob_end_flush();
    }
    else
    {
        ob_end_clean(); // Probably not needed
    }

?>           
于 2012-07-03T18:26:09.090 回答