В этой статье мы разберем, как с помощью PHP и 1С-Битрикс можно автоматизировать процесс переименования файлов в системе. Рассмотрим пример кода, который поможет вам переименовать файлы с пробелами в их именах, заменив пробелы на подчеркивания, а также обновить соответствующие данные в базе данных.
Этот код безопасно находит файлы с пробелами в именах в 1С-Битрикс, отображает их с путями и статусами, и позволяет включить автоматическое переименование с обновлением базы данных — всё это можно проверить в браузере.
Код
<?php
// /local/tools/check_files.php
// Подключаем ядро Битрикс
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");
use Bitrix\Main\Application;
use Bitrix\Main\FileTable;
// Проверка прав: только для администраторов
if (!CModule::IncludeModule("main") || !$USER->IsAdmin()) {
die("Доступ запрещён.");
}
// Настройки
$uploadDir = $_SERVER["DOCUMENT_ROOT"] . "/upload/";
$maxFiles = 10;
$processed = 0;
$log = [];
// Получаем файлы с пробелами в имени
$rsFiles = FileTable::getList([
'filter' => [
'MODULE_ID' => 'main',
'%FILE_NAME' => ' ' // Ищем файлы, где имя содержит пробел
],
'select' => ['ID', 'SUBDIR', 'FILE_NAME'],
'limit' => $maxFiles
]);
echo "<h2>:f09f948d: Поиск файлов с пробелами в имени</h2>";
echo "<table border='1' cellpadding='8' style='border-collapse: collapse; font-family: sans-serif;'>";
echo "<tr style='background: #f0f0f0;'><th>ID</th><th>Старое имя</th><th>Путь</th><th>Новое имя</th><th>Статус</th></tr>";
while ($file = $rsFiles->fetch()) {
$oldPath = $uploadDir . $file['SUBDIR'] . '/' . $file['FILE_NAME'];
$newFileName = str_replace(' ', '_', $file['FILE_NAME']);
$newPath = $uploadDir . $file['SUBDIR'] . '/' . $newFileName;
$status = [];
if (!file_exists($oldPath)) {
$status[] = "❌ Файл не найден на диске";
} else {
if (file_exists($newPath)) {
$status[] = "⚠️ Уже существует: $newFileName";
} else {
$status[] = "✅ Готов к переименованию";
}
}
echo "<tr>";
echo "<td>{$file['ID']}</td>";
echo "<td><strong>{$file['FILE_NAME']}</strong></td>";
echo "<td style='font-size: 0.9em; color: #555;'>{$file['SUBDIR']}/{$file['FILE_NAME']}</td>";
echo "<td><code>{$newFileName}</code></td>";
echo "<td>" . implode("<br>", $status) . "</td>";
echo "</tr>";
$log[] = [
'id' => $file['ID'],
'old' => $file['FILE_NAME'],
'new' => $newFileName,
'path' => $oldPath,
'exists' => file_exists($oldPath),
'conflict' => file_exists($newPath)
];
$processed++;
}
if ($processed === 0) {
echo "<tr><td colspan='5' style='text-align: center; color: green;'>✅ Нет файлов с пробелами в имени (в пределах лимита)</td></tr>";
}
echo "</table>";
echo "<p><strong>Найдено файлов:</strong> $processed (показаны первые $maxFiles)</p>";
// :f09f9481: Раскомментируйте блок ниже, чтобы включить реальное переименование
/*
echo "<h2>:f09f9484: Выполнение переименования...</h2>";
$connection = Application::getConnection();
$renamed = 0;
foreach ($log as $item) {
if ($item['exists'] && !$item['conflict']) {
if (rename($item['path'], dirname($item['path']) . '/' . $item['new'])) {
$connection->queryExecute("UPDATE b_file SET FILE_NAME = '{$item['new']}' WHERE ID = {$item['id']}");
echo "✅ {$item['old']} → {$item['new']} (обновлено в БД)<br>";
$renamed++;
}
}
}
echo "<p>✅ Успешно переименовано: $renamed файлов</p>";
*/
require_once($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php");
Стоимость услуг по разработке и сопровождению сайтов на 1C-Битрикс
Разработка корпоративного сайта
от 7 дней
от 40 000 рублей
Разработка сайта без системы оплаты заказов через корзину
* стоимость зависит от наличия верстки, использования готового решения и т.д.
Техническая поддержка
сайтов на CMS 1C-Битрикс
от 20 000 рублей/месяц
Оптимизация производительности действующих интернет-проектов, наполнение и сопровождение, полная техническая поддержка и продвижение в поисковых сетях.
* стоимость зависит от объема и сложности выполняемых работ
Перенос сайтов на «1С-Битрикс»
сайты на платформе «1С-Битрикс» — это удобство, надежность и высокая посещаемость
от 12 000 рублей
Перенос сайтов с любых CMS и статичных страниц на платформу «1С-Битрикс», с учетом дизайна, верстки и урл-адресов. С сохранением всей информации и структуры сайта.