为什么我得到这个PHP注意事项:未定义的偏移量? Mac与Windows

时间:2016-07-25 21:06:13

标签: php

我不断收到此代码的“注意:未定义的偏移量”

<?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机器上出现错误。

1 个答案:

答案 0 :(得分:0)

那是因为在Windows上,您的服务器可能位于C:\ public_html上,在Mac上它可能位于/ Users / YOU / public_html中。当你在windows中分解路径时,它会给你一个只有1个元素的数组,这个路径是完全相同的,因为没有&#39; /&#39;。当您在Mac上运行它时,它返回一个包含3个元素的数组 因此,当您在Mac中时,索引sizeof($ pagesDir)大于2且在窗口中小于2,因此由于索引为负而引发错误。
这个答案可能有误,我不知道你如何管理你的文件或你的页面根目录,但我认为这是最可能的答案。