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

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

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

Get_canonical_path функция

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

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

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

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

Извлекаем атрибуты из шот/html кода

Апрель 23, 2017 г.

Предлагаю код очень простой функции-парсера атрибутов из кусочков html кода. Основное назначение - разбирать текст short-codes. На входе: html код или shortcode. На выходе: имя тега и набор атрибутов. Если ничего подходящего не найдено - получим ...

Читать

Удаление элементов из массива в PHP

Ноябрь 11, 2015 г.

Массивы в PHP - один из мощнейших инструментов программиста. Когда я начинал изучать PHP, у меня был определенный багаж знаний работы с массивами в других языках программирования, таких как C++, Delphi и Fortrain. Везде требовалось объявить массив, указать ...

Читать

php - получить первый день следующего месяца

Ноябрь 19, 2019 г.

При создании расписаний, календарей, и т.п. могут возникать задачи вроде - получить timestamp первого дня этого месяца, или последнего дня следующего и т.п. В лоб это решается вот так: [crayon-689598894ad28837253152/] Со следующим месяцем ...

Читать

Функция сравнения двух строк на PHP

Август 1, 2017 г.

Насколько похожи две строки? В PHP для выяснения подобия строк есть две функции - similar_text() и levenshtein(). Первая из них считает процент ...

Читать
 

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

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



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