|
|
|
| Можно ли осуществить запись сразу в два и более файла, причем в каждый файл пишутся разные данные? | |
|
|
|
|
|
|
|
для: sway
(14.03.2006 в 11:08)
| | Вам надо непременно писать сразу два файла, или два файла одним скриптом? | |
|
|
|
|
|
|
|
для: Loki
(14.03.2006 в 11:35)
| | надо одним скриптом сразу в два файла, в форме вношу например четыре переменные $a, #$b, $c, $d и надо чтобы первые две писались в один файл text.txt, а другие в text1.txt | |
|
|
|
|
|
|
|
для: sway
(14.03.2006 в 11:08)
| |
<?
$f1 = fopen('file1.txt', 'w'); $f2 = fopen('file2.txt', 'w');
fputs($f1, 'data1'); fputs($f2, 'data2');
fclose($f1); fclose($f2);
?>
|
Каков вопрос - таков ответ.... | |
|
|
|
|
|
|
|
для: Trianon
(14.03.2006 в 11:46)
| | я так понимаю, что этот скрипт последовательно открывает 1 файл, пишет в него, закрывает, а затем принимается за второй? | |
|
|
|
|
|
|
|
для: sway
(15.03.2006 в 14:13)
| | Вовсе нет. Код выполняются построчно. А не абзац слева - абзац справа. :) | |
|
|
|
|
|
|
|
для: Trianon
(15.03.2006 в 14:40)
| | да вы чё? надо попробовать.
Знаний по PHP маловато, но я считал что знак ; обрубает строку и по этому знаку скрипт переходит на следующую строку? | |
|
|
|
|
|
|
|
для: sway
(15.03.2006 в 14:45)
| | если б так было - второй файл вообще бы не создался.
Знак ; показывает, что в этом месте закончился оператор ( и, возможно, начался следующий). | |
|
|
|
|
|
|
|
для: Trianon
(14.03.2006 в 11:46)
| | Ну я не знаю конечно, но походу w это не совсем построчная запись :)))
//запись в первый файл
$f1 = fopen('file1.txt', 'a+');
fputs($f1, 'data1');
fclose($f1);
//запись в второй файл
$f2 = fopen('file2.txt', 'a+');
fputs($f2, 'data1');
fclose($f2);
|
| |
|
|
|
|
|
|
|
для: midav
(15.03.2006 в 23:54)
| | Речь шла про построчность исходника скрипта, а не записываемых им файлов.
А уж о дозаписи в хвост файлов вообще никто не дышал. | |
|
|
|
|
|
|
|
для: Trianon
(16.03.2006 в 01:32)
| | есть код:
<?php
echo '<form name="form">
text:<br> <textarea name="data" cols="50" rows="10"></textarea>
</form>';
echo '<form name="form">
Имя:<br> <textarea name="name" cols="50" rows="10"></textarea>
</form>';
$name=trim($name);
$name=$name.'.txt';
echo '<form name="form">
text1:<br> <textarea name="data1" cols="50" rows="10"></textarea>
<input type="submit" name="start" value="Отправить">
</form>';
$fl=fopen("$name","w+");
flock ($fl,LOCK_EX);//блокировка файла
fputs ($fl,$data1);
flock ($fl,LOCK_UN);//снятие блокировки
fclose($fl);
$gf = "1.txt";
$file = file_get_contents ($gf);
$string = "$data";
$fp = fopen ($gf, "w+");
flock ($fp,LOCK_EX);//блокировка файла
fwrite ($fp, $string . "\n" . $file);
flock ($fp,LOCK_UN);//снятие блокировки
fclose ($fp);
?>
|
но проблема в чем: он должен создать файл с именем $name, а происходит следующее - создается файл без имени .txt
а в файл 1.txt пишется пустая строка,
не подскажете в чем ошибка? | |
|
|
|
|
|
|
|
для: sway
(16.03.2006 в 06:47)
| | У Вас слишком много форм. По-моему, собака зарыта именно в этом. | |
|
|
|
|
|
|
|
для: Trianon
(16.03.2006 в 10:16)
| | Ну как много? Бывало и больше, правда писали они в один файл.
А тут именно надо чтобы один файл создавался и в него писалась инфа, а в еще один файл писалась одновременно с этим и из одной формы другая инфа | |
|
|
|
|
|
|
|
для: sway
(16.03.2006 в 11:00)
| | Да, но на сервер-то передаются данные всегда только из одной формы. Кроме того, то что Вы пользуетесь register_globals=on, вносит сумятицу в логику. Мне её не понять. Попробуйте использовать $_GET['pole'] или $_POST['pole'] там, где хотите получить значение поля pole обрабатываемой формы.
И наконец, у Вас все формы называются одинаково. Это тоже как-то странно. Серверу, конечно, пофиг, а меня это запутывает. | |
|
|
|
|
|
|
|
для: Trianon
(16.03.2006 в 11:17)
| | Сам разобрался.
выложу код, вдруг кому понадобиться :))
файл с формой test.php
<?php
echo '<form action="rec.php" method=post>Имя файла<br><input name="names" type="text" maxlength="20" style="background: #ffffff; width: 300px; height:20px; border: #000000 1px solid" value="">';
echo '<br>запись в статичный файл:<br> <textarea name="data" cols="50" rows="10"></textarea>';
echo '<br>запись в генерируемый файл:<br> <textarea name="data1" wrap="virtual" cols="50" rows="10"></textarea>
<input type="submit" name="start" value="Отправить">
</form>';
?>
|
записывающий файл rec.php
<?php
$names=$_POST['names'];
$data1=$_POST['data1'];
$gf = "1.txt";
$names=trim($names);
$names=$names.'.txt';
$fl=fopen("$names","wb");
fputs ($fl,$data1);
fclose($fl);
$fp = fopen ($gf, "w+");
fputs ($fp, $data);
fclose ($fp);
echo '<p>создан файл: '.$names.' в него записано - '.$data1.'</p>';
echo '<p>записано в статичный файл: 1.txt текст - '.$data.'</p>';
echo '<p>для перехода назад нажмите <a href="test.php">назад</a></p>';
?>
|
пришлось использовать два файла, может кто подскажет каким образом можно все это объеденить? | |
|
|
|
|
|
|
|
для: sway
(17.03.2006 в 10:17)
| | А какую задачу он решает? Там внутри всё довольно туманно :) | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 10:29)
| | задача такова:
необходимо создать файл с определенным именем (задается в форме) и записать в него некую инфу, одновременно с этим в существующий файл добавляется инфа о том что создан такой-то файл (т.е. имя|title|что-то еще).
Но если объединить все в один файлик происходит следующее:
файл создается без имени что-то типа .txt , хотя в него инфа пишется. причина при первом запуске неизвестно имя файла. При разделении на два файла основной (форма) и исполняюший э та проблема пропадает, т.к. имя файла передается с переменной от основного к исполняющему.
Но вдруг есть способ их объединить? | |
|
|
|
|
|
|
|
для: sway
(17.03.2006 в 10:37)
| | >в существующий файл добавляется инфа о
Непохоже, чтобы скрипт это делал. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 10:44)
| | создание файла код:
<?php
$fl=fopen("$names","wb");
fputs ($fl,$data1);
fclose($fl);
?>
|
запись в сушествующий:
<?php
$gf = "1.txt";
$fp = fopen ($gf, "w+");
fputs ($fp, $data);
fclose ($fp);
?> | |
|
|
|
|
|
|
|
для: sway
(17.03.2006 в 10:47)
| | Я не буду спорить, пользоваться ведь скриптом Вам, а не мне. Но советую проверить работоспособность, хотя бы двумя тремя последовательными вызовами. | |
|
|
|
|
|
|
|
для: Trianon
(17.03.2006 в 10:51)
| | все работает, хотя есть ошибка в режиме записи в статичный файл надо вместо "w+" писать "a+" | |
|
|
|
|
|
|
|
для: sway
(17.03.2006 в 11:04)
| | Никто не подскажет способ объединения этих файлов ? :((( | |
|
|
|
|
|
|
|
для: sway
(17.03.2006 в 13:21)
| | Что именно подсказать то :) | |
|
|
|