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