");
define('EOL', "\n\n");
$settingsData = array();
// Process them
$newFile = explode(EOL, $_POST['leftFile']);
$oldFile = explode(EOL, $_POST['rightFile']);
for ($i = 0, $o = count($oldFile); $i < $o; ++$i)
{
$oldFile[$i] = explode(PHP_EOL, $oldFile[$i]);
for ($j = 0, $p = count($oldFile[$i]); $j < $p; ++$j)
{
$currentLine = $oldFile[$i][$j];
if (preg_match("#^([A-Z.]+) = (?:\"?)(.*)(?:\"?)$#iU", $currentLine, $data) !== false)
if (strlen($data[1]) != 0)
$settingsData[$data[1]]["oldValue"] = str_replace('"', '', trim($data[2]));
}
}
for ($i = 0, $o = count($newFile); $i < $o; ++$i)
{
$newFile[$i] = explode(PHP_EOL, $newFile[$i]);
for ($j = 0, $p = count($newFile[$i]); $j < $p; ++$j)
{
$currentLine = $newFile[$i][$j];
if (preg_match("#^([A-Z.]+) = (?:\"?)(.*)(?:\"?)$#iU", $currentLine, $data) !== false)
if (strlen($data[1]) != 0)
$settingsData[$data[1]]["newValue"] = str_replace('"', '', trim($data[2]));
}
}
printIndent("Please select values you want to keep. Note the script will default to new values, unless said new value does not exist. You also can take advantage of this form and edit fields.
", 1);
printIndent('', 1);
foreach ($settingsData as $itemName => &$values)
{
$displayOld = isset($values['oldValue']) ? $values['oldValue'] : "Value missing";
$displayNew = isset($values['newValue']) ? $values['newValue'] : "Value missing";
if ($displayOld == $displayNew)
continue;
$line = ' ';
$line .= ' ';
$line .= ' ';
$line .= ' ';
$line .= '
';
printIndent($line, 2);
}
printIndent(' ', 2);
printIndent(' ', 2);
printIndent(' ', 2);
printIndent(' ', 1);
}
else if ($_POST['step'] == 1)
{
$errors = array();
$confFile = $_POST['file'];
foreach ($_POST['optionSelector'] as $valueName => &$keyName)
{
$definiteValueIndex = -1;
foreach ($_POST['nameCross'] as $index => &$key)
{
if ($key == $valueName)
{
$definiteValueIndex = $index;
break;
}
}
if ($definiteValueIndex == -1)
{
// TODO: Handle custom values that get lost
continue;
}
$newStr = $_POST[$keyName][$definiteValueIndex];
$oldStr = $_POST[$keyName == "oldValue" ? "newValue" : "oldValue"][$definiteValueIndex];
if (!ctype_digit($newStr))
$newStr = '"' . $newStr . '"';
if (!ctype_digit($oldStr))
$oldStr = '"' . $oldStr . '"';
$newValueString = $valueName . " = " . $newStr;
$oldValueString = $valueName . " = " . $oldStr;
$confFile = str_replace($oldValueString, $newValueString, $confFile);
}
echo "Here is your new configuration file:
";
echo '';
printf('%s', $confFile);
echo ' ';
if (!empty($errors))
{
echo "The following errors happened during processing:
";
echo implode(" ", $errors);
echo " ";
}
}
?>