Запись "переменных" в файл!

neonet

Новичок
Запись "переменных" в файл!

как создать файл config.php c переменными?
так не получаеться.
PHP:
$f=fopen("config.php","w+");
$data="$dbhost = '".$_POST["db_host"]."';$dblogin = '".$_POST["db_login"]."';$dbpass = '".$_POST["db_pass"]."';$dbname = '".$_POST["db_name"]."';";
fputs($f,$data);
fclose($f);
Как правильно вписывать в переменную $data знак "$" чтоб PHP не считал её за переменную?
 

phprus

Moderator
Команда форума
http://ru.php.net/string
Прочитай про разницу одинарных и двойных кавычек.
 

Sickness

Новичок
Вот код моей функции:
PHP:
function updateSettingsFile($config_vars)
{
	global $headDir;
                
                // В твоем случае, ты можешь просто в ней указать текущую папкку с движком, у меня же это в settings.php лежит
                $headDir = 'http://localhost';

	$settingsArray = file_get_contents($headDir . '/имя_файла.php');	
	if (strpos($settingsArray, "\n") !== false)
		$settingsArray = explode("\n", $settingsArray);
	elseif (strpos($settingsArray, "\r") !== false)
		$settingsArray = explode("\r", $settingsArray);
	else
		return;

	if (count($config_vars) == 1)
	{
		$temp = trim(implode("\n", $settingsArray));
		if (substr($temp, 0, 2) != '<?' || substr($temp, -2) != '?' . '>')
			return;              
		if (strpos($temp, 'headDir') === false)
			return;
	}

	if (count($settingsArray) < 10)
		return;

	foreach ($settingsArray as $k => $dummy)
		$settingsArray[$k] = strtr($dummy, array("\r" => '')) . "\n";

	for ($i = 0, $n = count($settingsArray); $i < $n; $i++)
	{
		if (substr($settingsArray[$i], 0, 1) != '$')
			continue;

		$settingsArray[$i] = trim($settingsArray[$i]) . "\n";

		foreach ($config_vars as $var => $val)
		{
			if (strncasecmp($settingsArray[$i], '$' . $var, 1 + strlen($var)) == 0)
			{
				$comment = strstr(substr($settingsArray[$i], strpos($settingsArray[$i], ';')), '#');
				$settingsArray[$i] = '$' . $var . ' = ' . $val . ';' . ($comment == '' ? '' : "\t\t" . rtrim($comment)) . "\n";

				unset($config_vars[$var]);
			}
		}

		if (substr(trim($settingsArray[$i]), 0, 2) == '?' . '>')
			$end = $i;
	}

	if (empty($end) || $end < 10)
		$end = count($settingsArray) - 1;

	if (!empty($config_vars))
	{
		if (trim($settingsArray[$end]) == '?' . '>')
			$settingsArray[$end++] = '';
		else
			$end++;

		foreach ($config_vars as $var => $val)
			$settingsArray[$end++] = '$' . $var . ' = ' . $val . ';' . "\n";
		$settingsArray[$end] = '?' . '>';
	}
	else
		$settingsArray[$end] = trim($settingsArray[$end]);

	if (count($settingsArray) < 12)
		return;

	$fp = @fopen($headDir . '/settings.php', 'w');

	if ($fp)
	{
		fclose($fp);

		$fp = fopen($headDir . '/settings.php', 'r+');
		foreach ($settingsArray as $line)
			fwrite($fp, strtr($line, "\r", ''));
		fclose($fp);
	}
}

Использование: 
$vars   = array('dbHost' => $_POST['db_host'],
                        'dbLogin' => $_POST['db_login']
_и так далее_ );

updateSettingsFile($vars);
 

SID

ReadOnlyТеаm
Sickness
PHP:
"';$dblogin = '" => "\$dblogin = "
"';$dblogin = '" => '$dblogin = '
 
Сверху