我不断收到此代码的“注意:未定义的偏移量”
<?php
// Detect the subdirectory of the page
$pagePath = getcwd();
$pageDirs = explode("/", $pagePath);
$currentDir = $pageDirs[sizeof($pageDirs)-1];
$isHome = false;
$subDir = null;
if ($currentDir != "public" && $currentDir != "components" && $currentDir != "prototypes" && $currentDir != "styleguide"){
// 2 levels deep in a Pages directory
// Save the last 2 levels into vars
$subDir = $currentDir;
$currentDir = $pageDirs[sizeof($pageDirs)-2];
}
$hostname = getenv('HTTP_HOST');
if ($currentDir == "legacy" || $_SERVER["PHP_SELF"] == "/coronita/index.php"){
// This is the home index page
// No subnav will be needed
$isHome = true;
$currentDir = "overview";
}
?>
此行发生错误
$currentDir = $pageDirs[sizeof($pageDirs)-2];
有什么想法吗?此代码在Mac上没有显示错误,但在我的Windows机器上出现错误。
答案 0 :(得分:0)
那是因为在Windows上,您的服务器可能位于C:\ public_html上,在Mac上它可能位于/ Users / YOU / public_html中。当你在windows中分解路径时,它会给你一个只有1个元素的数组,这个路径是完全相同的,因为没有&#39; /&#39;。当您在Mac上运行它时,它返回一个包含3个元素的数组
因此,当您在Mac中时,索引sizeof($ pagesDir)大于2且在窗口中小于2,因此由于索引为负而引发错误。
这个答案可能有误,我不知道你如何管理你的文件或你的页面根目录,但我认为这是最可能的答案。