Как изменить кодировку всех файлов в папке глобально на PHP?

Пользователь

от bart , в категории: PHP , год назад

Как изменить кодировку всех файлов в папке глобально на PHP?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jorge , год назад

@bart 

Для изменения кодировки всех файлов в папке глобально на PHP можно использовать следующий код:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php

$dir = '/path/to/directory'; // замените на путь к вашей папке
$encoding_from = 'iso-8859-1'; // замените на текущую кодировку файлов
$encoding_to = 'utf-8'; // замените на желаемую кодировку

$files = glob($dir . '/*.{php,txt}', GLOB_BRACE); // выберите только файлы с расширениями .php и .txt

foreach ($files as $file) {
    $content = file_get_contents($file);
    $content = iconv($encoding_from, $encoding_to, $content);
    file_put_contents($file, $content);
}


В этом примере мы используем функцию glob(), чтобы получить список файлов в папке с расширениями .php и .txt, и затем проходимся по каждому файлу с помощью цикла foreach. Для каждого файла мы считываем его содержимое с помощью функции file_get_contents(), затем изменяем кодировку содержимого с помощью функции iconv() и записываем измененное содержимое обратно в файл с помощью функции file_put_contents().

Пользователь

от jamey.kohler , 4 месяца назад

@bart 

Убедитесь, что вы заменили значения переменных $dir, $encoding_from и $encoding_to на свои реальные значения. Переменная $dir должна содержать путь к вашей папке, $encoding_from - текущую кодировку файлов, а $encoding_to - желаемую кодировку.


Также вы можете изменить список файлов, выбранных функцией glob(), изменяя второй аргумент функции glob() (в данном примере выбраны файлы с расширениями .php и .txt).


Не забудьте выполнить этот код с правами на запись для файлов в папке.