2014-02-12 92 views
0

如何解決我的php錯誤注意:未定義偏移量:2? 有我的代碼:注意:未定義偏移量:2在php

<?php 
    $currentFile = $_SERVER["PHP_SELF"]; 
    $parts = Explode('/', $currentFile); 
    $parts['2']; 
    if ($parts['2'] == "index.php") { 
     ?> 
    <?php } if ($parts['2'] != "index.php") { ?> 
    <?php } //die("desffd"); ?> 

感謝您的幫助!

+0

的var_dump($部分)? –

+0

您試圖訪問不可用值的'$ currentFile' – krishna

+2

的值是多少?我認爲$ currentfile只有一個'/'所以我認爲你正在嘗試獲取字符串的第二部分。所以使用$ parts ['0'] – krishna

回答

0

刪除引號:

if ($parts[2] == "index.php") 
+0

$ parts ['2']在這裏可以正常工作http://3v4l.org/nLbbp – krishna

+0

@krishna你是對的!我試過刪除我的「」,但PHP有同樣的錯誤... – user3244348

0

您正在試圖通過指定其爲整數數組的索引以訪問該變量。因此,不需要將引號包含到索引中,還可以使用isset()來檢查您正在訪問的數組索引是否已設置。

嘗試用

if(isset($parts[2])) 
{ 
if ($parts[2] == "index.php") { 
     ?> 
    <?php } else { ?> 
    <?php } 
} 
+0

謝謝!我已經嘗試刪除我的「」,但PHP有同樣的錯誤... – user3244348

+0

嘗試用我在我的答案編輯的代碼..並讓我知道如果問題是固定的或不。 – Jenz

2

陣列指數法從0開始,所以假設URL是像/index.php,該指數應該是$parts[1]

EG:

$_SERVER["PHP_SELF"]

/index.php/Arg1/Arg2

0: Domain (value before delim - usually null) 
/: Deliminator 
1: index.php 
/: Deliminator 
2: Arg1 
/: Deliminator 
3: Arg2 
+0

假設該文件是根你的網站,如果你使用/作爲分隔符後var_dump($ parts),0總是空的,1是文件,2+是其他的。 例如'array(2){[0] => string(0)「」[1] => string(9)「index.php」}' –

+0

我發佈了舊url的評論,如http:// ****/****。現在可以了。 – krishna

+0

哦!對不起,可能編輯之前,我看你的評論 –

0

如果你想要的文件名,最好的選擇應該是basename

$filename = basename($_SERVER["PHP_SELF"]); 
if ($filename == 'index.php') { 
    // ... 
}