<?php
/**
* Parses header metadata for data migration.
*
* @param string $header_metadata The raw header metadata string.
* @return array An associative array containing parsed header information.
*/
function parseHeaderMetadata(string $header_metadata): array
{
$metadata = [];
// Split the metadata string into individual header entries.
$entries = explode("\n", $header_metadata);
foreach ($entries as $entry) {
// Trim whitespace from the entry.
$entry = trim($entry);
// Skip empty lines.
if (empty($entry)) {
continue;
}
// Split the entry into key-value pairs.
$parts = explode(":", $entry, 2); // Limit to 2 parts to handle values with colons.
if (count($parts) === 2) {
$key = trim($parts[0]); // Key
$value = trim($parts[1]); // Value
// Add the key-value pair to the metadata array.
$metadata[$key] = $value;
} else {
// Handle malformed entries (optional). Log or throw an error.
error_log("Malformed header entry: " . $entry);
}
}
return $metadata;
}
// Example Usage (for testing):
/*
$header_metadata = <<<EOT
Name: customer_id
Email: user@example.com
Created: 2023-10-27
LastModified: 2023-10-28
EOT;
$parsed_data = parseHeaderMetadata($header_metadata);
print_r($parsed_data);
*/
?>
Add your comment