|
|
|
|
|
для: Евгений Петров
(28.08.2005 в 14:41)
| | Это критично только если файл будет просматриваться под *NIX - действительно крайне раздражает... а так при аккуратном программировании проблем практически не бывает... разве, что при сборке-разборке содержимого файла. | |
|
|
|
|
|
|
|
для: pavelspon
(28.08.2005 в 17:34)
| | Я такой функции не знаю.
А вообще могу тебе посоветовать использовать другую функцию для замены строки
<?
$num = 10; // номер строки
$str = "Строка которой нужно заменить исходную";
$f = fopen("file.txt","r+");
for($i=1;$i<$num;$i++)
fgets($f);
fwrite($f,$string);
fclose($f);
?>
|
Правда в этом случае если исходная строка будет больше чем конечная, то она замениться не полностью. | |
|
|
|
|
|
|
|
для: Евгений Петров
(28.08.2005 в 14:49)
| | Совсем не важно какая бала 8 строка главное чтобы вместо неё была записана
строка $str.
Вот только не понятно о какой особенности Windows вы говорите ведь даже если я не использую символ перевода каретки /r ($str."/n") то запись всеровно производится в начало ( в Windows), а если нет разницы ($str."/n" и $str."/r/n" результат один и тот же) в каком случае используют символ /r. Или может быть в системах *nix
без использования /r запись производиться не в начало строки ?
А также подскажите, нет ли в PHP ф-ии записывающей массив в файл так чтобы каждый элемент массива записывался с новой строки (бес построчной записи, что-то вроде обратной ф-ии file("XXXX"))? | |
|
|
|
|
|
|
|
для: pavelspon
(28.08.2005 в 02:29)
| | А какая была 7 строка (точнее 8)? | |
|
|
|
|
|
|
|
для: Sfinks
(28.08.2005 в 11:12)
| | Только не советую ставить символ перевода коретки \r т.к. это особенность Windows в *NIX системах перевод на другую строку осуществляется символом \n | |
|
|
|
|
|
|
|
для: pavelspon
(28.08.2005 в 02:29)
| | Во первых речь не о 7-ой строке, а о 8-ой. Первая строка $m[0];
Во вторых скрипт не "прибавляет к уже существующей 7 строке", а заменяет строку 7 и объединяет ее со строкой 8.
А происходит это потому что строка "777" не содержит символа переноса строки, а в tmp.txt Вы дописываете строки, "как есть".
Чтобы этого не происходило, заменять $m[7] нужно так:
| |
|
|
|
|
|
|
| Подскажите почему этот скрипт не заменяет 7 строку из файла pavel.php на
строку str=777, а прибавляет к уже существующей 7 строке ?
<?
$str=777;
$m=file("pavel.txt");
$m[7]=$str;
$tmp=fopen("tmp.txt","w");
foreach($m as $n)
{
fwrite($tmp,$n);
}
fclose($tmp);
copy("tmp.txt","pavel.txt");
?> | |
|
|
|
|