<?php
/**
* Decodes a list of directories, handling various input formats and compatibility.
*
* @param string $input The input string containing directory paths. Can be a single path,
* a comma-separated list, or a newline-separated list.
* @return array An array of decoded directory paths. Returns an empty array on error.
*/
function decodeDirectories(string $input): array
{
$directories = [];
if (empty($input)) {
return $directories; // Return empty array for empty input
}
// Handle comma-separated input
if (strpos($input, ',') !== false) {
$directoryList = explode(',', $input);
}
// Handle newline-separated input
elseif (strpos($input, "\n") !== false) {
$directoryList = explode("\n", $input);
}
// Handle single path
else {
$directoryList = [$input];
}
foreach ($directoryList as $directory) {
$directory = trim($directory); // Remove leading/trailing whitespace
// Basic validation - ensure it's not empty after trimming
if (!empty($directory)) {
$directories[] = $directory;
}
}
return $directories;
}
//Example Usage (for testing)
/*
$input1 = "/path/to/dir1,/path/to/dir2";
$result1 = decodeDirectories($input1);
print_r($result1);
$input2 = "dir1\ndir2\ndir3";
$result2 = decodeDirectories($input2);
print_r($result2);
$input3 = "/path/to/dir";
$result3 = decodeDirectories($input3);
print_r($result3);
$input4 = "";
$result4 = decodeDirectories($input4);
print_r($result4);
$input5 = " /path/to/dir , /another/dir ";
$result5 = decodeDirectories($input5);
print_r($result5);
*/
?>
Add your comment