为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 用于目录而不是文件

PHP 用于目录而不是文件

PHP
呼啦一阵风 2023-08-19 17:42:40
我正在使用 PHP 将导航栏引入我的页面。下面的代码允许我设置活动页面,以便我可以设置链接的样式。<?php if ($_SERVER['SCRIPT_NAME'] == "/caseStudies.php") { ?>我正在努力解决如何使其在下拉菜单上工作。我已将 4 个页面放入一个子目录中,并且希望能够在 4 个页面中的任何一个处于活动状态时设置下拉部分的标题样式。我努力了:<?php if ($_SERVER['SCRIPT_NAME'] == "/services/") { ?>服务是目录的名称,但它不起作用。除此之外还有其他命令'SCRIPT_NAME'会查找目录而不是文件吗?
查看完整描述

1 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

这是因为你的$_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/"); //  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)


查看完整回答
反对 回复 2023-08-19
  • 1 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信