basit string işlemi kullandım son kez dener misin
function cot_installConfigReplace(&$file_contents, $config_name, $config_value)
{
// Gelen değeri temizle
$config_value = trim($config_value);
// Değer boş string ise
if ($config_value === '') {
$config_value_escaped = "''";
}
// Değer tırnaklarla başlayıp bitiyorsa
elseif (preg_match('/^(["\'])(.*)\1$/', $config_value, $matches)) {
$content = $matches[2];
if ($matches[1] === '"') {
// Çift tırnaktan tek tırnağa çevir
$config_value_escaped = "'" . str_replace("'", "\\'", $content) . "'";
} else {
// Tek tırnaktan çift tırnağa çevir
$config_value_escaped = '"' . str_replace('"', '\\"', $content) . '"';
}
}
// Tırnaksız gelen değer
else {
$config_value_escaped = "'" . str_replace("'", "\\'", $config_value) . "'";
}
// Basitleştirilmiş pattern
$search = "\$cfg['$config_name'] = ";
$pos = strpos($file_contents, $search);
if ($pos !== false) {
// Noktalı virgüle kadar olan kısmı bul
$end_pos = strpos($file_contents, ';', $pos);
if ($end_pos !== false) {
$before = substr($file_contents, 0, $pos + strlen($search));
$after = substr($file_contents, $end_pos);
$file_contents = $before . $config_value_escaped . $after;
return true;
}
}
return false;
}
Maalesef

(((
Şimdi de çift tırnak içine tek tırnağı almadı;
$cfg['mysqlpassword'] = "....@$3....";