Редактирование файла через php

ecspl01t

Новичок
Нужно такой скрипт, который редактировал файл, например,
есть файл text.php он вытягивает содержимое с файла config.cfg/txt.
То есть нужна форма, чтобы после изменения в файле text.php можно было сохранить в config.cfg/txt.

что-то пытался, но ничего не получилось:
PHP:
<form action="edit.php" method="post"> 
<textarea name="text" id="text" cols="60" rows="40"> 
<?php 
//$lines = file('config.cfg'); 
    //foreach ($lines as $line_num => $line) { 
$test = file_get_contents('config.cfg'); 
$array = array(); 

$test = explode(PHP_EOL, $test); 

foreach($test as $key => $value) { 
$key = explode('=', $value); 

$temp = explode('.', $key[0]); 
$temp_str = ''; 

for($m = 0; $m < count($temp); $m++) { 
$temp_str .= '["'.$temp[$m].'"]'; 
} 
$str = trim($key[1], '"'); 
eval('$array' . $temp_str . '= "' . $str . '";'); 
} 

print_r($array); 
     
 //echo "{$line_num} : " . htmlspecialchars($line) . "\n"; 
  
            /*$a = fopen($lines,"w+"); 
            fwrite($a,$line); 
            fclose($a);*/ 
//} 
?> 
</textarea> 
<input id="submit" type="submit" value="Сохранить"> 
</form>
вот еще, это работает, но не так как нужно
PHP:
<form method="post"> 
<textarea name="cod" id="text" cols="60" rows="40"> 
<?php 
if(isset($_POST['cod'])){ file_put_contents('config.cfg',stripcslashes($_POST['cod']));} 
echo file_get_contents('config.cfg'); 
?> 
</textarea> 
<input id="submit" type="submit" value="Сохранить"> 
</form>
 

Фанат

oncle terrible
Команда форума
Что значит "не так как нужно"?
И что за формулы безумного алхимика написаны в первом варианте?
 

ecspl01t

Новичок
Что значит "не так как нужно"?
возьмите и посмотрите...
(после того как нажать сохранить всегда опускается сточка вниз, не знаю как исправить)
И что за формулы безумного алхимика написаны в первом варианте?
а что там не ясно ? вы походу не туда попали, Вам нужно на форум домохозяек...
 

Фанат

oncle terrible
Команда форума
Не стоит так себя вести.
Обращаясь за помощью к посторонним людям, которые тебе ничего не должны, надо вести себя вежливо, не хамить и не огрызаться.

Если бы у тебя сломалась машина, а ты бы обратился к посторонним людям за помощью, а когда они попросили бы у тебя трос, а ты им сказал "возьмите сами в багажнике и посмотрите" - как минимум ты бы остался без помощи. А то и с телесными повреждениями.

Попробуй ответить ещё раз, вежливо и культурно.
Осознавая, что редактор файлов нужен тебе, а не нам.
 

ecspl01t

Новичок
этим все сказано "И что за формулы безумного алхимика написаны в первом варианте?"
 

Фанат

oncle terrible
Команда форума
Ну, почти всё, я бы сказал.
Код в первом варианте действительно очень смешной - какие-то безумные метания и бессмысленные телодвижения, никак не связанные с сохранением текста в файл.
Но код во втором (который тебе написали на каком-то другом форуме, скорее всего) - куда более осмысленный. из него надо только убрать эту пресловутую пустую строку.

Но ты, похоже, совсем не хочешь помочь себе, а хочешь найти виноватых, на которых сорвать злость на свою несообразительность.
Не стоит этого делать.
Если ты в плохом настроении - пойди погуляй, отдохни, покушай.
Потом приди, вежливо задай вопрос и получи ответ (если сам до того не догадаешься, как решить эту примитивную проблему).
 

Фанат

oncle terrible
Команда форума
В общем, если обещаешь не хамить, то можно и не гулять.
<textarea name="cod" id="text" cols="60" rows="40">Х<--- перевод строки
<?php
если перенести тег PHP на строку выше, то проблема лишней строки тут же решится.
 

Фанат

oncle terrible
Команда форума
Ты тоже извини, за "алхимика" :)

Кстати, передай тем, кто писал второй код, что вот такой вариант будет получше:

PHP:
<?
if ($_POST) {
  file_put_contents("file.txt",$_POST['text']);
  header ("Location: ".$_SERVER['PHP_SELF']);
  exit;
}
$text = htmlspecialchars(file_get_contents("file.txt"));
?>
<form method="POST">
<textarea name="text"><?=$text?></textarea>
<input type="submit">
</form>
 

ecspl01t

Новичок
DimaTiunov
как глава называется ?
Фанат
та норм)
а чем лучше, тем что обработчик не в textarea ?
 
Сверху