Почему не записывается содержимое в файл?

Здравствуйте! Почему-то содержимое не записывается в файл
//выводим новую строку и старую строку
 echo "<br>Новая строка: $new";
     echo "<br>Старая строка: $old";
//получаем старое содержимое файла
 $oldconf = file_get_contents ("/etc/bind/$domain.conf");
// в нём заменяем старую строку на новую
     $filewrite =  str_replace ($oldconf,$new,$old) or die ("Не могу заменить строку");
//выводим новое содержимое файла
     echo "<br>Новая конфигурация: $filewrite";
//путь к файлу конфигурации
    $path = "/etc/bind/$domain.conf";
//выводим путь к  конфигурации
    echo "<br>$path";
//записываем новое содержимое в файл
      file_put_contents ($path,$filewrite) or die ("Ошибка записи в файл");

Вывод:
Новая строка: _sip._tcp.yandex.ru IN SRV 8 20 21 sipserver23
Старая строка: _sip._tcp.yandex.ru. IN SRV 0 20 21 sipserver23
Новая конфигурация: _sip._tcp.yandex.ru. IN SRV 0 20 21 sipserver23
/etc/bind/yandex.ru.conf

Содержимое файла после выполнения скрипта:
_sip._tcp.yandex.ru. IN SRV 0 20 21 sipserver23
Содержимое файла до выполнения скрипта:
_sip._tcp.yandex.ru. IN SRV 0 20 21 sipserver23
На файл стоят права 644, скрипт выполняется от имени владельца файла yandex.ru.conf
При этом сам скрипт почему-то не умирает
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
verdex
@verdex Автор вопроса
Перепутал порядок аргументов в функции str_replace
$filewrite =  str_replace ($oldconf,$old,$new) or die ("Не могу заменить строку");

вместо
$filewrite =  str_replace ($oldconf,$new,$old) or die ("Не могу заменить строку");
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы