PHP $_server name and uri


PHP $_server name and uri

嗨,我正在尝试让一段 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; ?>

首先 - 请更改

$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"。子域配置有时非常复杂。

冒着再次出错的风险。

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

<?php 
$mainfile = true;
?>

然后在标题中

<?php
if ($mainfile===true)
....

这样,主文件可以调用任何内容并放置在任何地方。

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

现在

$hweb = '';

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

.$_SERVER['PHP_SELF'];

这是因为 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
    }
?>