Файл index.php
Чтобы различить возможные результаты работы функции "комбинация символов найдена в строке на позиции 0" и "комбинация символов в строке не найдена", можно использовать при сравнении сочетание трех знаков равенства – это означает проверку на "тождественность ":
if (strpos ("строка", "символы") ===0) {
… будет верно, если "строка" начинается с "символов".
Можно также проверять результат на принадлежность к целым числам:
if (is_integer (strpos ("строка ", "символы")==false) {
… выполнится, только если в "строке" "символы" не найдены.
И если переменная не определена или путь в ней не начинается с имени корневой папки или содержит две точки подряд, то выведем содержимое корневой папки – для удобства запишем ее имя в переменную $dirct, с которой мы и будем в дальнейшем работать как с содержащей путь к текущей папке:
$dirct=$begin; } else {
…а если переменная Sfold "в порядке", то в переменную Sdirct поместим именно ее значение:
$dirct=$fold; }
Выведем заголовок формы менеджера файлов. Заодно и передадим в ссылке на файл со сценарием-обработчиком этой формы (а этот сценарий, согласно нашему плану, располагается в файле zapros.php) путь к текущей папке – в самом деле, откуда обработчик может его еще узнать? При передаче формы переменные, указанные в ссылке на сценарий-обработчик формы, тоже будут ему переданы – вместе с переменными из формы.
echo ("<form action=zapros.php?folder=$dirct method=post>");
В том случае, если текущая папка не является корневой, выведем ссылку на родительскую папку – т. е. ту, которая содержит в себе текущую…
if ($dirct!=$begin) {
…для чего выделим из пути к текущей папке его часть с начала вплоть до последнего слэша – разделителя директорий; это и будет путь к родительской папке (скажем, если путь к текущей папке – files/folder1/papka1, то путь к родительской папке будет выглядеть как files/folder1):
$back=substr ($dirct, 0, strrpos($dirct, "/"));
Примечание
Команда substr (строка, начало выделения, длина выделения) предназначена для выделения из строки ее части. Строка (или переменная, ее содержащая) должна быть указана в первом параметре команды. Второй параметр – позиция, с которой начинается выделяемая часть (вернее, число символов, которые необходимо пропустить до начала выделения части строки), а третий – количество выделяемых символов.
Команда strrpos (строка, символ) выдает номер позиции последнего появления указанного в ее втором параметре символа в строке, указанной в ее первом параметре. В вышеприведенной строчке она используется для определения длины вырезаемого из полного пути фрагмента – до последнего слэша.
И выведем ссылку на родительскую папку, попросту передав полученный путь к ней через переменную $fold:
echo ("<a href=index.рbр?:?о1с1=$bаск>Корневая папка</а><br>");
Все это делается, естественно, лишь в том случае, если текущая папка – не корневая.
}