[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как заменить строку во всех файлах?
Kuzma92

Всем здравия!
Есть у меня задача, во всех файлах одной определенной директории заменить строку на новую. Необходимо перебрать все файлы в директории, и в случае если строка, которую нужно заменить (именно строка целиком) в файле есть, то такую строку, целиком же, и заменить на новую.
Я пытаюсь сделать это таким способом:

$old_cat = $expl[1]; // это нужно заменить
$new_cat = $_POST['cat_red']; // заменить на это
$folder_rec = "db/rec"; // в этой директории

replace_txt($folder_rec , $old_cat , $new_cat);
function replace_txt($folder_rec , $old_cat , $new_cat) {
$dir_rec = opendir($folder_rec);
while(false !== ($file_rec = readdir($dir_rec))) {
if($file_rec != '.' && $file_rec != '..') {
$file_path_rec = ($folder_rec."/".$file_rec);
if(is_file($file_path_rec)) {
$file_rec_content = file_get_contents($file_path_rec);
$file_rec_content = str_replace($old_cat , $new_cat , $file_rec_content);
file_put_contents($file_path_rec , $file_rec_content);
}
}
}

closedir( $dir_rec );
}


Однако, замена не происходит, а вместо этого фатальная ошибка:
Fatal error: Uncaught Error: Call to undefined function replace_txt() in C:\Server\data\htdocs\school\control\cats.php:96 Stack trace: #0 {main} thrown in C:\Server\data\htdocs\school\control\cats.php on line 96

Уважаемые профи PHP, помогите мне пожалуйста сделать это правильно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.