Класс Path: работа с директориями и файлами в 1С-Битрикс D7

Внимание! Работает режим премодерации. Все сообщения публикуются после проверки!
Страницы: 1
Ответить
RSS
Класс Path: работа с директориями и файлами в 1С-Битрикс D7
\Bitrix\Main\IO\Path — класс для работы с путями в Битрикс D7

Работа с путями в файловой системе и веб-приложениях — одна из частых  задач при создании и администрировании сайтов на 1С-Битрикс. Опечатка в  пути к файлу, попытка использовать некорректные символы или неверное  представление относительных адресов могут приводить к различным ошибкам.  Чтобы максимально упростить эту задачу, в фреймворке Bitrix D7  существует специальный класс \Bitrix\Main\IO\Path, который содержит набор статических методов для валидации и удобных преобразований путей.
Изменено: Валерий Макеев - 29.09.2025 15:13:09
Этот код преобразует относительный путь к файлу с кириллицей и некорректными сегментами в безопасный абсолютный путь, нормализует его, проверяет валидность, извлекает имя и расширение файла, а также генерирует корректную URI-ссылку для веб-доступа.
Код
<?php
// Подключаем ядро Битрикс (требуется для работы с классами D7)
require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/prolog_before.php');

use Bitrix\Main\IO\Path;

// Пример: формируем безопасный путь к файлу, нормализуем его, проверяем валидность и получаем имя и расширение
$relativePath = "upload/фото из отпуска/../фото/весна 2025!.jpg";
$absolutePath = Path::convertRelativeToAbsolute($relativePath);
$normalizedPath = Path::normalize($absolutePath);

if (Path::validate($normalizedPath)) {
    $fileName = Path::getName($normalizedPath);
    $fileExt = Path::getExtension($normalizedPath);
    $safeUri = Path::convertLogicalToUri($normalizedPath);

    echo "Абсолютный путь: " . $normalizedPath . "<br>";
    echo "Имя файла: " . $fileName . "<br>";
    echo "Расширение: " . $fileExt . "<br>";
    echo "Ссылка (URI): " . $safeUri . "<br>";
} else {
    echo "Путь содержит недопустимые символы.";
}

require_once($_SERVER['DOCUMENT_ROOT'] . '/bitrix/modules/main/include/epilog_after.php');
Страницы: 1
Ответить
Форма ответов
Текст сообщения*
Перетащите файлы
Ничего не найдено
Файл
 

Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс

Техническая поддержка

сайтов на CMS 1C-Битрикс

от 20 000 рублей/месяц
Оптимизация производительности действующих интернет-проектов, наполнение и сопровождение, полная техническая поддержка и продвижение в поисковых сетях.

* стоимость зависит от объема и сложности выполняемых работ

Интернет-магазин на готовом решении

от 7 дней

от 40 000 рублей
запуск сайта в максимально короткие сроки

* указана минимальная стоимость. Стоимость выбранной лицензии «1С-Битрикс» оплачивается отдельно.

Модули и компоненты для «1С-Битрикс»

оценка производится на основе предоставленного Технического Задания

от 20 000 рублей
Разработка дополнительных модулей для 1С-Битрикс, расширение функционала, внедрение любых решений, требующихся для выполнения ваших бизнес-задач.

* стоимость зависит от конкретной задачи, ее объема и сложности выполняемых работ.