[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Замена строки в файле
qaz333
Мне нужно открыть файл найти и заменить в нём нужную строку сохранить b закрыть. как ето сделать?



Спустя 10 минут, 51 секунда (20.10.2011 - 20:29) ZSH написал(а):
самый простой вариант
$text = file_get_contents('Путь к файлу');
str_replace('что ищем', 'на что меняем', $text);
file_put_contents('путь к файлу', $text);

Спустя 6 минут, 31 секунда (20.10.2011 - 20:36) qaz333 написал(а):
ага, спасибо
а вот ещо такой вопрос, почему не происходит замена строки с dbhost

файл "index.php"


<?
$g_mod = $_GET['g_mod'];
$p_mod = $_POST['p_mod'];

if($g_mod == "action")
{
if($p_mod == "in_db")
{
$file = "index.php";
$host = $_POST['dbhost'];
$name = $_POST['dbname'];
$user = $_POST['dbuser'];
$pass = $_POST['dbpass'];

$data = file_get_contents("$file");
$data = str_replace( '$dbhost = "";', '$dbhost = "$host";' );
file_put_contents("$file", $data);
}

}

else
{

$dbhost = "";
$dbname = "";
$dbuser = "";
$dbpass = "";


if($dbhost == "" or $dbname == "" or $dbuser == "" or $dbpass == ""){

echo "Данные от БД не заполнены";
?>
<br>Заполните их в форме ниже<br>
<
form action = "index.php?mod=action" method = "post">
<
input type = "hidden" name = "p_mod" value = "in_db">
dbhost
<input type = "text" name = "dbhost" >
<
br>
dbname
<input type = "text" name = "dbname" >
<
br>
dbuser
<input type = "text" name = "dbuser" >
<
br>
dbpass
<input type = "text" name = "dbpass" >
<
br>
<
input type = "submit" valur = "Изменить" >
<?

}else{

$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$link);

}
}

?>

Спустя 3 минуты, 36 секунд (20.10.2011 - 20:39) ZSH написал(а):
str_replace('что ищем', 'на что меняем', $text);

Спустя 17 минут, 59 секунд (20.10.2011 - 20:57) qaz333 написал(а):
ага, понял,

но вот возникла проблема

вот код(файл index.php)

<?
$g_mod = $_GET['gmod'];
$p_mod = $_POST['pmod'];

if($g_mod == "action")
{
if($p_mod == "in_db")
{
$file = "index.php";
$host = $_POST['dbhost'];
$name = $_POST['dbname'];
$user = $_POST['dbuser'];
$pass = $_POST['dbpass'];

$data = file_get_contents($file);
$data = str_replace( '$dbhost = "";', '$dbhost = "$hos00000000t";', $data );
file_put_contents($file, $data);
}

}

else
{

$dbhost = "";
$dbname = "";
$dbuser = "";
$dbpass = "";


if($dbhost == "" or $dbname == "" or $dbuser == "" or $dbpass == ""){

echo "Данные от БД не заполнены";
?>
<br>Заполните их в форме ниже<br>
<
form action = "index.php?gmod=action" method = "post">
<
input type = "hidden" name = "pmod" value = "in_db">
dbhost
<input type = "text" name = "dbhost" >
<
br>
dbname
<input type = "text" name = "dbname" >
<
br>
dbuser
<input type = "text" name = "dbuser" >
<
br>
dbpass
<input type = "text" name = "dbpass" >
<
br>
<
input type = "submit" valur = "Изменить" >
</
form>
<?

}else{

$link = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$link);

}
}

?>



Должен пока заменять одну строку, но проблема в том что ничего не изменяет, в чём может быть проблема?

Спустя 15 минут, 30 секунд (20.10.2011 - 21:13) Winston написал(а):
Цитата (qaz333 @ 20.10.2011 - 20:57)
$data = str_replace( '$dbhost = "$host";', '$dbhost = "$host";', $data );

А что ты меняешь ? blink.gif

Спустя 2 минуты, 56 секунд (20.10.2011 - 21:16) qaz333 написал(а):
та мнебы хоть што нибуть поменять, уже был бы рад

Спустя 2 минуты, 31 секунда (20.10.2011 - 21:18) qaz333 написал(а):
а, всё, понял в чём проблема, уже исправил

как мне только сделать штобы в
$data = str_replace( '$dbhost = "";', '$dbhost = "$host";', $data );

$host отобразила содержимое переменной а не само её имя?

Спустя 8 минут, 58 секунд (20.10.2011 - 21:27) Winston написал(а):
Так ?
$data = str_replace( $dbhost, $host, $data );

Спустя 17 минут, 59 секунд (20.10.2011 - 21:45) qaz333 написал(а):
та нет, я же указал строку

$data = str_replace( '$dbhost = "";', '$dbhost = "$host";', $data );

Спустя 22 минуты, 59 секунд (20.10.2011 - 22:08) Winston написал(а):
Для тех, кто в танке объясни... Что тебе заменить надо? blink.gif

Спустя 5 минут, 40 секунд (20.10.2011 - 22:14) ZSH написал(а):
$data = str_replace( '$dbhost = "";', '$dbhost = "' . $host . '";', $data );
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.