这是我的代码 - 不确定它为什么不起作用:
<?php
$urlroot = $_SERVER['HTTP_HOST'];
$urllink = "http://" . $urlroot;
$DirPath = getcwd() . "\n";
$InnermostDir = basename(rtrim($DirPath, '/'));
if ($InnermostDir == $urlroot) {
$InnermostDir = 'home';
echo $InnermostDir;
};
?>
如果我在echo
和$InnermostDir
上执行$urlroot
,则会显示域example.com。所以不确定为什么这不会回归呢?
答案 0 :(得分:4)
$DirPath
最后包含\n
,但未删除,因此字符串不相等。
rtrim($DirPath, '/')
只会从结尾删除/
个字符,而不是\n
。如果您还希望删除\n
,则需要使用rtrim($DirPath, "/\n")
,或者在设置\n
时不要添加$DirPath
。
答案 1 :(得分:0)
用trim()包围两个变量,所以:
<?php
$urlroot = $_SERVER['HTTP_HOST'];
$urllink = "http://" . $urlroot;
$DirPath = getcwd() . "\n";
$InnermostDir = basename(rtrim($DirPath, '/'));
if ( trim($InnermostDir) == trim($urlroot) ) {
$InnermostDir = 'home';
echo $InnermostDir;
};
?>
答案 2 :(得分:0)
如果我把它放在我的/ var / www目录中:
<?php
$urlroot = $_SERVER['HTTP_HOST'];
$urllink = "http://" . $urlroot;
$DirPath = getcwd() . "\n";
$InnermostDir = basename(rtrim($DirPath, '/'));
var_dump($InnermostDir);
var_dump($urlroot);
if ($InnermostDir == $urlroot) {
$InnermostDir = 'home';
echo $InnermostDir;
};
?>
用localhost / test.php调用它得到
string(4)“www”string(9)“localhost”
哪会失败if
?