In this short guide, I will show you how to write a PHP function that takes an associative array of key-value pairs as a function parameter and writes its contents to a .env file.
Convert an PHP Array to .env file
The function has two parameters: the first is the path to the .env file, and the second is the associative array whose contents will be written to the file.
The function formats each key-value pair of the array into the "KEY=VALUE" format, typical of `.env` files.
function arrayToEnvFile($filePath, $array) { $content = ''; foreach ($array as $key => $value) { // Ensure the key is a string and the value is scalar (not an array, object, etc.) if (!is_string($key) || !is_scalar($value)) { throw new InvalidArgumentException("Invalid key or value type."); } // Escape if needed and format the line $key = strtoupper($key); // Optional: convert keys to uppercase $value = strval($value); // Convert the value to a string $value = strpos($value, ' ') !== false ? '"' . $value . '"' : $value; // Enclose the value in quotes if it contains spaces $content .= "{$key}={$value}\n"; } // Write to file if (file_put_contents($filePath, $content) === false) { throw new RuntimeException("Failed to write to the file at $filePath."); } } // Example usage $envFilePath = 'path/to/your/.env'; // Replace with the actual path to your .env file $array = [ 'DB_HOST' => 'localhost', 'DB_NAME' => 'example_db', 'DB_USER' => 'user', 'DB_PASS' => 'secret' ]; arrayToEnvFile($envFilePath, $array);
What does this PHP function do?
- The $content string is built by iterating over the provided associative array.
- Keys are converted to uppercase strings, which is a common convention in .env files (this is optional and can be adjusted as per your needs).
- If a value contains spaces, it is enclosed in double quotes.
- The resulting string is written to the file specified by $filePath. If the file doesn't exist, it will be created; if it does exist, it will be overwritten.
This function is a simple way to manage .env file contents programmatically. However, be cautious when handling sensitive data and ensure that the .env file is appropriately secured, especially in a production environment.