Как: перезаписать определенный массив новыми данными POSTED

Я переопределю свой старый безответный и беспорядочный Вопрос, потому что я прошу Твоей помощи. Кто угодно...

У меня есть строка внутри файла (choices.php), которая имеет:

some choice1...||other choice2...||some data here...||OVERWRITE ME! I AM OLD!

На другой странице есть кнопка, которая POST (и сохраняет/сохраняет) новые данные в selections.php. Эти новые данные должны перезаписывать некоторый текст ($arrkey[3])

Я пробовал explode / implode, file_put_contents, все, что нашел в поисках ответов. Но самое большее, что я смог сделать, это то, что NewData просто ДОБАВЛЯЕТСЯ в конце этой строки:

какой-то вариант1...||другой вариант2...||здесь некоторые данные...||ПЕРЕПИСАТЬ МЕНЯ! Я СТАРЫЙ! Я НОВАЯ ДАННАЯ!

вместо:

некоторые варианты1...||другие варианты2...||некоторые данные здесь...||Я НОВЫЕ ДАННЫЕ!


person Roko C. Buljan    schedule 17.02.2011    source источник
comment
Пожалуйста, укажите, что именно вы хотите, определив мой текущий текст и мой ожидаемый текст   -  person Maulik Vora    schedule 17.02.2011
comment
@Maulik: я полагаю, вы хотите предложить использовать str_replace? На самом деле у меня есть кнопка «переключатель», которая переключает тексты: NOTIFY:ON и NOTIFY:OFF   -  person Roko C. Buljan    schedule 17.02.2011
comment
@roxon, нет, братан, я хочу понять точный вопрос и твое требование. так что я могу предложить лучший ответ.   -  person Maulik Vora    schedule 17.02.2011
comment
@Maulik Я редактировал комментарий выше! (Заранее спасибо)   -  person Roko C. Buljan    schedule 17.02.2011
comment
хорошо, так что вы хотите "какой-то выбор1...||другой выбор2...||некоторые данные здесь...||Я НОВЫЕ ДАННЫЕ!" вместо 'какой-то выбор1...||другой выбор2...||здесь некоторые данные...||ПЕРЕПИСАТЬ МЕНЯ! Я СТАРЫЙ!», извините, но не могли бы вы также сказать мне, что этот текст хранится в «файле» или в какой-либо «переменной php»?   -  person Maulik Vora    schedule 17.02.2011
comment
@ Маулик Я пожимаю тебе руку за все твое время, Маулик, у меня есть ответ. Проверить! до свидания   -  person Roko C. Buljan    schedule 17.02.2011


Ответы (1)


Если я правильно понял ваш вопрос, следующий код сделает то, что вы хотите:

$entries = explode('||', file_get_contents('choices.php'));
$entries[3] = $_POST['myfield']; // You may want to do more strict checking before that.
file_put_contents('choices.php', implode('||', $entries));

И кстати, selection.php — плохое имя, так как файл на самом деле не содержит PHP-кода. Но это не помешает скрипту работать.

person Artefact2    schedule 17.02.2011
comment
Спасибо за ваш ответ и предложение. Иду с ТЕСТОМ :) О результатах сообщу! - person Roko C. Buljan; 17.02.2011
comment
Вы бы видели мои счастливые слезы сейчас! Уже 9 часов пытаюсь это понять! Я вам очень благодарна!!! кстати. хе-хе, моя последняя попытка на экране была: $arrNum = explode( file_get_contents('||', $fileName)); ...близко, но... далеко-далеко :) ОГРОМНОЕ СПАСИБО! - person Roko C. Buljan; 17.02.2011