PHP 用于目录而不是文件

我正在使用 PHP 将导航栏引入我的页面。下面的代码允许我设置活动页面,以便我可以设置链接的样式。

<?php if ($_SERVER['SCRIPT_NAME'] == "/caseStudies.php") { ?>

我正在努力解决如何使其在下拉菜单上工作。我已将 4 个页面放入一个子目录中,并且希望能够在 4 个页面中的任何一个处于活动状态时设置下拉部分的标题样式。

我努力了:

<?php if ($_SERVER['SCRIPT_NAME'] == "/services/") { ?>

服务是目录的名称,但它不起作用。

除此之外还有其他命令'SCRIPT_NAME'会查找目录而不是文件吗?


呼啦一阵风
浏览 88回答 1
1回答

千万里不及你

这是因为你的$_SERVER['SCRIPT_NAME']意志是这样的:/services/page1.php并且它当然与 不同/services/。你想要做的是检查是否$_SERVER['SCRIPT_NAME']以开头/services/,你可以用 strpos https://www.php.net/manual/en/function.strpos.php来做到这一点。var_dump($_SERVER['SCRIPT_NAME']); // string(15) "/services/a.php"var_dump($_SERVER['SCRIPT_NAME'] == "/services/"); //&nbsp; bool(false)var_dump(strpos($_SERVER['SCRIPT_NAME'], "/services/") === 0); // bool(true)如果您想要目录,也可以使用目录名https://www.php.net/manual/en/function.dirname.php。因此,$_SERVER['SCRIPT_NAME']用 dirname 包裹起来,您将获得目录,并且可以与以下内容进行比较/services:var_dump(dirname($_SERVER['SCRIPT_NAME'])); // string(9) "/services"var_dump(dirname($_SERVER['SCRIPT_NAME']) === '/services'); // bool(true)
打开App,查看更多内容
随时随地看视频慕课网APP