2013-10-01 1 views
2

При обращении к каталогам в PHP, например, в коде ниже.В чем разница между наличием/отсутствием '/' в конце при определении каталога?

index.php

if ($handle = opendir('/path/to/images/directory')) { 

    while (false !== ($fileName = readdir($handle))) { 

     ... 

    } 

    closedir($handle); 
} 

Установка мы можем предположить ниже. Ниже обозначается [directory], весь код находится в файле index.php, а изображения/файлы, которые мы хотим перебрать, находятся в каталоге [images].

-[css] 
-[js] 
-[inc] 
-[images] 
-index.php 

Конкретно opendir('/path/to/images/directory')) { линии, что лучшие практики для ссылок на этот каталог?

Должно ли быть конечное / в конце, так как оно является каталогом или является ненужным? Должно ли быть относительным? Absoulte? Вместо этого мы можем использовать SERVER_VARIABLES?

ответ

2

Для реальной/абсолютной конвенции я предлагаю относительный, но, возможно, это только я. Это позволяет легко перемещать ваш код.

Затем curiosly, я проверил исходный PHP-код и opendir оборачивают вокруг различных функций с и один из них является

php_check_open_basedir

313     while (ptr && *ptr) { 
314       end = strchr(ptr, DEFAULT_DIR_SEPARATOR); 
315       if (end != NULL) { 
316         *end = '\0'; 
317         end++; 
318       } 
319 
320       if (php_check_specific_open_basedir(ptr, path TSRMLS_CC) == 0) { 
321         efree(pathbuf); 
322         return 0; 
323       } 
324 
325       ptr = end; 
326     } 

Так в основном это петли на вашем пути прыжки с одного DEFAULT_DIR_SEPARATOR к другой. Так что я думаю, меньше у вас есть, тем лучше.

чтение Также ваш код, но может быть, это просто мой вкус:.. с помощью $ реж «/» $ имя_файла выглядит лучше, чем $ реж $ имя_файла

Во всяком случае нет реальной разницы в мире я думаю..

+0

Я имею в виду в целом не только по отношению к моему коду. Мой код должен был привести пример. Я предполагаю, что я спрашиваю, **, ** должен ** У меня всегда есть '/' в конце при определении каталога? – Mike

+0

Да, я имел в виду вообще. последний/не используется действительно, разница минимальна, не заметна. Для абсолютного или относительного, я предлагаю относительный, на случай, если кто-то должен переместить его код на другом сервере/месте. – AndreaBogazzi

Смежные вопросы