I’m the type of person who prefers to do things in a way that I perceive as the proper or correct way. While this tends to make things take a bit longer to accomplish, I feel the result ends up being better overall. One such thing I noticed is that file and path handling in PHP was missing a function I used quite a bit when writing C# code. In C# there is a Path.Combine() function that appends two file paths together to form one complete path without having to care what the beginning character and ending character of the two paths are. I wrote up a little function in PHP to mimic what happens.
// Take a path and/or a filename and combine them into one file path
function filePathCombine($path1, $path2) {
$completedPath = '';
// Check if path1 ends with DIRECTORY_SEPARATOR
if (substr($path1, -1) !== DIRECTORY_SEPARATOR) {
$completedPath = $path1 . DIRECTORY_SEPARATOR;
} else {
$completedPath = $path1;
}
// Check if path2 starts with DIRECTORY_SEPARATOR
if (substr($path2, 0, 1) !== DIRECTORY_SEPARATOR) {
$completedPath .= $path2;
} else {
$completedPath .= substr($path2, 1);
}
return $completedPath;
}
Looking through the code you will notice DIRECTORY_SEPARATOR, which is a global PHP constant. While it isn’t needed considering using / instead of \ would work on Windows and Linux, I thought it best to try to stay with my idea on how to do things the proper way.