function cot_installConfigReplace(&$file_contents, $config_name, $config_value)
{
    file_put_contents('debug-log.txt', "GELEN DEĞER: $config_value\n", FILE_APPEND);
    
    // Şifre içinde çift tırnak varsa kaçış yap
    $config_value_escaped = '"' . addslashes($config_value) . '"';
    
    file_put_contents('debug-log.txt', "DÜZENLENEN ŞİFRE: $config_value_escaped\n", FILE_APPEND);

    $file_contents = preg_replace(
        "/(\\\$cfg\\['" . preg_quote($config_name, '/') . "'\\]\\s*=\\s*)('|\").*?\\2;/m",
        "\$1$config_value_escaped;",
        $file_contents
    );

    file_put_contents('config-debug.php', $file_contents);
}
$config_value = str_replace('@', '\\@', $config_value);
Bunu addslashes() ile birlikte kullanırsan, @ işaretinin düzgün şekilde dosyaya yazıldığından emin olabilirsin.
file_put_contents('test-config.php', "\$cfg['mysqlpassword'] = \"$config_value_escaped\";\n");
Bu dosyayı açarak sonucu kontrol edebilirsin. Eğer yanlış yazılıyorsa, yazılmadan önceki debug-log.txt içeriğini inceleyerek şifrenin nasıl işlendiğini görebilirsin.