Я пытаюсь сделать скрипт, который увеличивает все оценки в текстовом файле на +1. Например, 0 -> 1, 1 -> 2 и т. Д. Уровень 5 вообще не следует увеличивать, так как он лучше всего равен 0-5.
Проблема в том, что мой скрипт выдает следующий вывод:
Новые оценки:
5
5
5
5
5
5
Когда это должно дать:
Новые оценки:
1
5
2
4
3
5
Кажется, что str_replace()
ищет 0, превращает его в 1, затем снова находит, что 1 и заменяет его на 2 .... и, в конце концов, все оценки равны 5. Есть ли способ сделать это только один раз? для каждого сорта? Я пробовал preg_replace()
, но выдает ошибку:
Предупреждение PHP: preg_replace (): Разделитель не должен быть буквенно-цифровым или обратной косой чертой
Вот мой сценарий:
<?php
$file = 'grades.txt';
$file_contents = file_get_contents($file);
$fh = fopen($file, "w");
$file_contents = str_replace(['0','1','2','3','4'],['1','2','3','4','5'],$file_contents);
fwrite($fh, $file_contents);
fclose($fh);
echo "New grades:\n";
echo $file_contents;
?>