PHP Combine Path is a simple function I created that is roughly equivalent to Microsoft .NET’s Path
It works by trimming off separator characters on the left side of $path1 and the right side of $path2, which is then concatenated as $path1, the directory separator character, and $path2. The function also works with URLs.
<?php
if (!function_exists('str_combinepath')){
/**
* Combines two strings into a path.
* @param string $path1 : The first path to combine.
* @param string $path2 : The second path to combine.
* @param string $separator : (Optional) The directory separator. Default: OS specified.
*/
function str_combinepath($path1, $path2, $separator = DIRECTORY_SEPARATOR){
$path1 = rtrim($path1, $separator);
$path2 = ltrim($path2, $separator);
return $path1 . $separator . $path2;
}
}
Examples
<?php
str_combinepath ('/home', 'usr/');
// Result: '/home/usr/'
str_combinepath ('/home/', 'usr/');
// Result: '/home/usr/'
str_combinepath ('c:\temp', 'subdir\file.txt', '\\');
// Result: 'C:\temp\subdir\file.txt'
// Also works for URL's
str_combinepath ('https://www.earlpeter.com', 'wp-admin', '/');
// Result: https://www.earlpeter.com/wp-admin
You can see more of my PHP gists here.
Image Taken at Suzhou, Jiangsu, China, edited with Prisma AI.