Перезаписать содержимое в PHP fwrite () - PullRequest
3 голосов
/ 14 мая 2010

Есть ли способ, которым вы можете перезаписать строку в PHP. позвольте мне быть более ясным, используя примеры.

Мой массив

array{
    [DEVICE] => eth0,
    [IPADDR] => 192.168.0.2,
    [NETMASK] => 255.255.255.0,
    [NETWORK] => 192.168.0.0,
    [BROADCAST] => 255.255.255.255,
    [GATEWAY] => 192.168.0.1,
    [ONBOOT] => no
}

Файл перезаписывается

DEVICE=eth0
IPADDR=192.168.200.2
NETMASK=255.255.255.0
NETWORK=192.168.200.0
BROADCAST=255.255.255.255
GATEWAY=192.168.200.1
ONBOOT=no
DNS1=195.100.10.1

Результат переписанного файла

DEVICE=eth0
IPADDR=192.168.0.2
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=255.255.255.255
GATEWAY=192.168.0.1
ONBOOT=no
DNS1=195.100.10.1

Обратите внимание, что DNS1=195.100.10.1 остается в файле, потому что у него нет ключа со значением DNS в нашем массиве.

Спасибо

Ответы [ 3 ]

2 голосов
/ 14 мая 2010

Я делал это раньше, читая весь файл в переменной и затем используя preg_replace для замены различных переменных, которые я хотел изменить.

2 голосов
/ 14 мая 2010

Вам нужно найти алгоритм, чтобы сделать это:

  1. Прочитать файл для перезаписи с помощью функции file() (внимательно посмотрите на опции, вы не хотите, чтобы символ массива новостей был включен в массив).
  2. Прокрутите массив и explode() каждый элемент, чтобы создать новый ключ => массив значений.
  3. Объединить полученный массив с вашим первым массивом.
  4. взорвать каждый элемент нового массива
  5. Перезаписать файл, развернув массив с помощью \ n
1 голос
/ 14 мая 2010

Я второй комментарий webbiedave. Вы могли только искать в соответствующей позиции и затем использовать fwrite, если то, что вы писали, имело тот же размер, что и вы (это не так).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...