tags:

views:

604

answers:

2

This should be a simple question, but I just can't recall the relevant API. A search on google with the term "combine directory name php" doesn't yield any results. So I guess I am doing both myself and the programming community a service by asking this question.

How to combine directory and file name to form a full file path in PHP? Let's say the directory name is "D:\setup program", and the file name is "mj.txt". The method should return me, on Windows "D:\setup program\mj.txt". Of course the method should return the correct file path in Linux or other OS.

The related function in .Net is Path.Combine, but in PHP, I couldn't recall that, even though I must have seen it before.

+5  A: 
$filepath = $path . DIRECTORY_SEPARATOR . $file;

Although in newer versions of PHP it doesn't matter which way the slashes go, so it is fine to always use forward slashes.

You can get a correct absolute path using realpath(), this will also remove things like extra unnecessary slashes and resolve references like ../. It will return false if the path is not valid.

Tom Haigh
I don't think that PHP accepting slashes on windows has anything to do with PHP. You can enter forward slashes in newer Windows versions in the shell/explorer.
soulmerge
A: 

You can just concatenate it with the php constant DIRECTORY_SEPARATOR, or just use forward slashes Windows probably won't mind =D

Zenshai