2016-07-16 2 views
0

Можно ли поместить строку в файл PHP?

Пример:
Напишите строку внутри файла PHP

<?php 
$user["Stack"] = "oveflow"; 
?> 

И когда пользователи пишут другую строку, она стала:

<?php 
$user["Face"] = "book"; 
$user["Stack"] = "overflow"; 
?> 

Любой код, который написать строку внутри PHP-файла?

+0

Обычно не рекомендуется изменять код с кодом (вы рискуете выполнить ввод пользователя в качестве кода). Почему бы не отредактировать текстовый файл и не загрузить php данные в массив? –

+0

Хорошо спасибо за идею, что я собираюсь использовать текстовый файл, но можете ли вы научить меня, как код PHP читает файл или массивы содержимого текстового файла? – astroXoom

ответ

0
<?php 
$file = 'file.txt'; 
$data = 'dummydata'; 
file_put_contents($file, $data); 
?> 
+0

Я пробовал, но он только перезаписывает основной файл :( – astroXoom

+0

, так что вам нужно сделать, можете продумать его? – rUCHit31

+0

Когда пользователи нажмут кнопку, он добавит строку в файл PHP, например: немодифицированный версия PHP-кода: , когда пользователь нажимает кнопку, он собирается изменить код PHP, добавив строку, и он будет выглядеть следующим образом: Я очень новичок в программировании на PHP, поэтому я новичок здесь – astroXoom

0

Попробуйте, это позволяет легко поместить и получить данные постоянно:

<?php 

class Storage { 
    private static $file = 'data.json'; 
    private static $data = null; 

    private static function preload() { 
     if (is_null(self::$data)) 
      self::$data = json_decode(file_get_contents(self::$file), true); 
    } 

    public static function put($key, $value) { 
     self::preload(); 
     self::$data[$key] = $value; 
     file_put_contents(self::$file, json_encode(self::$data)); 
    } 

    public static function get($key) { 
     self::preload(); 
     return isset(self::$data[$key]) ? self::$data[$key] : null; 
    } 
} 

Storage::put("Stack", "oveflow"); 
Storage::put("Face", "book"); 

echo Storage::get("Stack") . "<br>\n"; 
echo Storage::get("Face"); 

После того, как вы положили данные один раз, он всегда будет там. Вы можете запустить этот скрипт один раз, а затем удалить:

Storage::put("Stack", "oveflow"); 
Storage::put("Face", "book"); 

И запустить его снова, и вы будете видеть два эхо-выходов.

Смежные вопросы