如何通过PHP仅在首页设置预加载器(Pre-loader)
仅在首页显示预加载器的PHP解决方案
你可以通过PHP判断当前访问的页面是否为首页,再决定是否输出预加载器的HTML代码,以下是两种可行的方案:
方案一:通过当前脚本文件名判断
如果你的首页文件是index.php(大多数网站的默认首页文件名),可以用basename($_SERVER['PHP_SELF'])获取当前执行的脚本文件名,再做判断:
<?php // 判断是否为首页脚本 if (basename($_SERVER['PHP_SELF']) === 'index.php') { ?> <!-- preloader --> <div class="art-preloader"> <!-- preloader content --> <div class="art-preloader-content"> <!-- title --> <h5>Loading the   <span style="color: #FFC107;">page</span> </h5> <!-- progressbar --> <div id="preloader" class="art-preloader-load"></div> </div> <!-- preloader content end --> </div> <!-- preloader end --> <?php } ?>
方案二:通过请求URI判断
如果你的网站使用了URL重写(比如首页访问路径是根域名https://yourdomain.com/而不是带index.php),可以通过判断请求的URI来识别首页:
<?php // 获取当前请求的URI,去除可能的查询参数 $currentUri = strtok($_SERVER['REQUEST_URI'], '?'); // 判断是否为根路径或首页脚本 if ($currentUri === '/' || $currentUri === '/index.php') { ?> <!-- preloader --> <div class="art-preloader"> <!-- preloader content --> <div class="art-preloader-content"> <!-- title --> <h5>Loading the   <span style="color: #FFC107;">page</span> </h5> <!-- progressbar --> <div id="preloader" class="art-preloader-load"></div> </div> <!-- preloader content end --> </div> <!-- preloader end --> <?php } ?>
简单说明
$_SERVER['PHP_SELF']:PHP的超全局变量,返回当前执行脚本的完整路径,basename()函数用于提取其中的文件名部分。$_SERVER['REQUEST_URI']:返回用户请求的URI路径,strtok()用于去除URI中的查询参数(比如/?id=1这类带参数的情况),保证判断的准确性。
你可以根据自己网站的实际情况选择其中一种方案,替换原来直接写死的预加载器HTML代码即可。
内容的提问来源于stack exchange,提问作者sky
相关产品推荐
相关产品推荐

