В этой статье рассмотрены практические примеры, которые позволяют выполнять основные действия по сохранению и выгрузке данных из/в файл.
Запись в файл формата .txt
file_put_contents(куда пишем, что пишем);
<?php $filed = "save.txt”;
$rez = "Записано в файлик";
file_put_contents($filed, $rez); ?>
В этом случае пишет в первую строку файла. Счет строк идет с нуля.
Загрузка
file(имя загружаемого файла);
<?php $loadss = file("save.txt”);
echo $loadss[0]; ?>
Т.к. загрузка должна учитывать то , какую строку надо загрузить, то пишем переменную $loadss[0]; в виде массива, где, к примеру, [0]; указывает какую строку надо загрузить.
Сохранение и загрузка в файл нескольких строк
<?php $filed = "save.txt";
$rez1 = "Строка 1"."\n";
$rez2 = "Строка 2"."\n";
$rez .= $rez1. $rez2;
file_put_contents($filed, $rez);
$loadss = file($filed);
echo $loadss[0]."<br>".$loadss[1]; ?>
При записи указываем "\n" чтобы строки записывались каждая с новой строки. При загрузке указываем какую строку загрузить [0] и [1];.
Строки легко можно складывать, выводить вместе и как угодно:
Выводит строковые значения вместе:
$we = $loadss[0].$loadss[1]; echo $we;
Складывает строки (если цифры, то получится результат в виде цифры. Если строка и цифры, то результат будет ноль)
$we = $loadss[0] + $loadss[1]; echo $we;
Особенности при сохранении в textarea
В textarea пользователь может нажать на enter и тем самым перенесет строку на новую. Таким образом строк он может сделать 20-30 и сместить последующую информацию вниз. Поэтому при загрузке с файла, все будет смещено. Чтобы этого избежать, можно использовать функцию замены вида: $rez2 = str_replace("\n","",$_POST["lab1"])."\n"; при сохранении – при этом все будет писаться в одну строку при бесконечном кол-ве введенных пользователем строк.
Рабочий пример:
<?php $filed = "save.txt";
if ($_POST["ok"]){
$rez1 = $_POST["lab"]."\n";
$rez2 = str_replace("\n","",$_POST["lab1"])."\n"; //заменяем в textarea \n на пустоту
$rez3 = $_POST["lab2"]."\n";
$rez .= $rez1.$rez2.$rez3;
file_put_contents($filed, $rez); }
if ($_POST["ok1"]){
$loadss = file($filed); }
?>
<form method="post">
<input type="text" name="lab" value="<?php echo $loadss[0]?>" /> <br>
<textarea name="lab1"><?php echo $loadss[1]?></textarea> <br>
<input type="text" name="lab2" value="<?php echo $loadss[2]?>"/> <br><br>
<input type="submit" name="ok" value="save" /> <br>
<input type="submit" name="ok1" value="load" />
</form>
Так как везде мы используем перенос строки вида \n, то textarea при загрузке использует перенос типа \r за счет чего нужные строки с данными записываются в свои значения с правильным переносом, а textarea с \r.
Пример:
1 \n
2 \n
текстариа 3 \r 4 \r 5 \r \n
4 \n
Добавить комментарий