2015-11-17 2 views
0

Я пытаюсь исключить каталоги из инструкции, и я не могу избавиться от каталогов . или .. при использовании PHP. не похоже, работаетPHP проверяет, является ли строка "." или ".."

$album_num = $_POST['album_num']; 
$album_directory = "../../galleries"; 
$albums = array_reverse(scandir($album_directory)); 
$album = $albums[$album_num]; 
if($album) { 
    if($album !== "." || $album !== "..") { //This line here 
     $image = glob($album_directory . "/" . $album . "/*.jpg"); 
     $image = explode("/", $image[0]); 
     $image = end($image); 
     echo $album . ":" . $image; 
    } 
} else { 
    echo "halt";  
} 

Линия, которая имеет if($album !== "." || $album !== ".."). Нужно ли мне избегать точек?

Могу ли я просто удалить их из массива для начала?

+5

Потому что это должно быть '&&' не '||'. Вы хотите проверить, что это не точка И не является двойной точкой. – zerkms

+0

Посмотрите на уставы в руководстве для scandir –

+0

@zerkms, я, должно быть, устал .. Спасибо. Я изменил это, и теперь у меня возникла другая проблема, когда я возвращаю 2 пустых звонка (используя вызов ajax для получения имена). Я решил за это короткое время просто удалить два значения в массиве. Таким образом, это не звонок – ntgCleaner

ответ

0

Попробуйте это:

if($album) { 
    if($album !== "." && $album !== "..") { //This line here 
     $image = glob($album_directory . "/" . $album . "/*.jpg"); 
     $image = explode("/", $image[0]); 
     $image = end($image); 
     echo $album . ":" . $image; 
    } 
} 

Изменения if состояния от || к &&

+1

Код без объяснений не полезен для сообщества. – zerkms

+1

Отредактировал мой ответ! Спасибо за руководство :) – Saani

+3

Ничего не объясняет. Серьезно - ответ должен сказать ПОЧЕМУ, что это было неправильно, и ПОЧЕМУ то, что вы предоставили, теперь исправлено. – zerkms

-2

Использования = вместо ==

Я полагаю, у не хочет, чтобы альбом вычисляться!! ==

$album_num = $_POST['album_num']; 
$album_directory = "../../galleries"; 
$albums = array_reverse(scandir($album_directory)); 
$album = $albums[$album_num]; 
if($album) { 
    if($album != "." || $album != "..") { //This line here 
     $image = glob($album_directory . "/" . $album . "/*.jpg"); 
     $image = explode("/", $image[0]); 
     $image = end($image); 
     echo $album . ":" . $image; 
    } 
} else { 
    echo "halt";  
} 
+0

Знаете ли вы, что делает '! ==' оператор? Как можно было бы оценивать переменную '$ album' в'! == 'в этом контексте? –

+1

Да, это не так. Извиняюсь. –