PHP: функция преобразования к каноническому пути

На замену realpath, который работает только с реально существующими файлами и папками UNIX, а также не работающий для ссылок, я написал функцию получения канонического пути.

В документации встречается функция eio_realpath, которая требует подключения libeio пакета. Описание её очень лаконичное, и возможно, она точно также работает лишь с реальными файлами, не позволяя получить канонизированный путь (realpath) для несуществующего в системе файла.

Get_canonical_path функция

Функция get_canonical_path($path) зачищает путь от возможных элементов вроде // или /./ и вычисляет навигацию /../. Также канонический путь не содержит в конце слеш.

Обратите внимание, что т.к. результатом является строка без терминального слеша, то для корневого пути функция возвращает пустую строку.

Иронично, что эту функцию я выковырял из какого-то заброшенного проекта (не обновлявшегося с 2009 года — https://github.com/LFSF/oras). Назначение архива мне не известно, но пригодилась данная функция. Я её немного причесал и адаптировал, чтобы она работала не только с директориями, но и с файлами. Спасибо тебе, неизвестный автор :).

Мало букафф? Читайте есчо !

Имя файла по handle в PHP

Июнь 15, 2016 г.

Всем привычна схема, при которой известно имя файла, и вы совершаете с ним какие то манипуляции. В PHP много функций, которые предоставляют именно такой функционал. Что делать, когда есть только file handle? Как получить имя открытого файла? ...

Читать

Грузим картинку в поле image в Drupal

Март 1, 2016 г.

Из кода программы на PHP мы попытаемся загрузить картинку в публикацию сайта на Drupal 7. Здесь описана логика и показан код всех операций. Постановка задачи Эта задача является частью задачи импорта статьи, извлеченной из HTML кода веб-страницы ...

Читать

Проверка кода ИНН на PHP

Сентябрь 23, 2015 г.

В этом году писал реализацию данной функции для проекта C2C-base. Оказывается, бывает ИНН двух видов - для юридических лиц и физ лиц - 10 или 12 знаков соответственно. Проверка большинства подобных кодов осуществляется по контрольным цифрам, содержащимся ...

Читать

Работаем с датами широкого диапазона в PHP

Январь 28, 2016 г.

Многие не задумываются при работе в PHP со стандартными функциями даты-времени о диапазоне их применимости (date(), time(), mktime() и т.п). Так мы можем скоро столкнуться с проблемой, подобная которой случалась уже раньше - "ошибка 2000". Я прекрасно ...

Читать
 

Комментарии к «PHP: функция преобразования к каноническому пути»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий: