В вашем коде есть несколько моментов, которые требуют исправления, чтобы текст в файле .csv заменялся корректно. Прежде всего, вы неправильно используете функцию `str_replace`. Вместо поиска строки `change-from` вы случайно ищете значение `result`, которое является именем выходного файла.
Вот обновленный пример кода, который исправляет эту проблему:
```php
<?php
$files_parameters = [
[
'name' => 'uploads/loaded-3.csv',
'result' => 'uploads/decode-3.csv',
'change-from' => 'Российский рубль',
'change-to' => 'RUB'
]
];
foreach($files_parameters as $file) {
if (file_exists($file['name'])) {
$source = @fopen($file['name'], 'r');
if ($source) {
$target = @fopen($file['result'], 'w+');
if ($target) {
while (!@feof($source)) {
$st = @fgets($source, 4096);
// Правильная замена:
$st = str_replace($file['change-from'], $file['change-to'], $st);
// Здесь мы можем добавить дополнительные условия для замены
if (substr_count($st, '</param>')) {
$st = str_replace('param', 'art', $st);
}
fwrite($target, $st);
}
@fclose($source);
@fclose($target);
} else {
echo "Не удалось открыть файл для записи: " . $file['result'];
}
} else {
echo "Не удалось открыть файл для чтения: " . $file['name'];
}
} else {
echo "Файл не существует: " . $file['name'];
}
}
?>
```
### Основные изменения:
1. **Корректная замена**: В строке `str_replace` замените значение `result` на `change-from`.
2. **Проверка на успешное открытие целевого файла**: Добавлена проверка, чтобы убедиться, что целевой файл открывается успешно.
3. **Сообщения об ошибках**: Добавлены сообщения об ошибках в случае, если не удается открыть файл для чтения или записи.
Теперь этот код должен корректно заменять текст в файле .csv, как вы и ожидаете.