Уважаемые программисты, Всем добрый день!
Не могли бы помочь поправить макрос для замены всех старых значений на новые в папке (чтобы во всех книгах в папке произошли изменения). Не получается подставить свои переменные: прописать путь к папке в которой надо сделать замены и старые и новые значения.
Путь к папке следующий:
R:\Filial\июль\
Значения:
старое "Товар", новое "Продукт",
старое "Категория" новое - "Наименование"
Ниже код макроса, также вложил текстовый файл с кодом.
Код |
---|
/**
* Функция замены текста во всех файлах папки
*
* @param string $folderName - пусть до папки
* @param string $oldText - искомый текст
* @param string $newText - на что меняем текст
*/
function replace_text_files($folderName, $oldText, $newText){
// открываем текущую папку
$dir = opendir($folderName);
// перебираем папку
while (($file = readdir($dir)) !== false){ // перебираем пока есть файлы
if($file != "." && $file != ".."){ // если это не папка
if(is_file($folderName."/".$file)){ // если файл
$contentFile = file_get_contents($folderName."/".$file); // открываем файл
//$contentFile = iconv("windows-1251", "utf-8", $contentFile); // для работы с файлами в кодировке windows-1251
$contentFile = str_replace($oldText, $newText, $contentFile); // делаем замену в тексте
file_put_contents($folderName."/".$file,$contentFile); // сохраняем изменения
}
// если папка, то рекурсивно вызываем replace_text_files
if(is_dir($folderName."/".$file)) replace_text_files($folderName."/".$file, $oldText, $newText);
}
}
// закрываем папку
closedir($dir); |
В какую книгу нужно прописывать данный код (куда модуль вставлять)?
В новую созданную книгу (где ее создавать?), либо в любую книгу из папки в которой нужно произвести поиск-замены?
Ниже основного кода есть Пример вызова функции:
Код |
---|
// пример использования
$oldText = 'old text'; // что меняем
$newText = 'new text'; // на что меняем
$folderName = "./files"; // в какой папке ищем
replace_text_files($folderName, $oldText, $newText); |
И как потом эту функцию вызывать?