function join_paths() {
$paths = array();
foreach (func_get_args() as $arg) {
if ($arg !== '') { $paths[] = $arg; }
}
return preg_replace('#/+#',"https://stackoverflow.com/",join("https://stackoverflow.com/", $paths));
}
My solution is simpler and more similar to the way Python os.path.join works
Consider these test cases
array my version @deceze @david_miller @mark
['',''] '' '' "https://stackoverflow.com/" "https://stackoverflow.com/"
['',"https://stackoverflow.com/"] "https://stackoverflow.com/" '' "https://stackoverflow.com/" "https://stackoverflow.com/"
["https://stackoverflow.com/",'a'] '/a' 'a' '//a' '/a'
["https://stackoverflow.com/",'/a'] '/a' 'a' '//a' '//a'
['abc','def'] 'abc/def' 'abc/def' 'abc/def' 'abc/def'
['abc','/def'] 'abc/def' 'abc/def' 'abc/def' 'abc//def'
['/abc','def'] '/abc/def' 'abc/def' '/abc/def' '/abc/def'
['','foo.jpg'] 'foo.jpg' 'foo.jpg' '/foo.jpg' '/foo.jpg'
['dir','0','a.jpg'] 'dir/0/a.jpg' 'dir/a.jpg' 'dir/0/a.jpg' 'dir/0/a.txt'