Make a path work both on linux and Windows

2019-01-07 11:44发布

问题:

How can I make sure that this path:

new Zend_Log_Writer_Stream(APPLICATION_PATH . '\logs\app.log')  

works both on linux and on windows?

回答1:

In Linux, the path separator is /. In Windows, it is either \ or /. So just use forward slashes and you will be fine.

APPLICATION_PATH . '/logs/app.log'


回答2:

You can also use DIRECTORY_SEPARATOR constant instead of \ or /. Usually you'll want to redefine it to have shorter name, like

define('DS', DIRECTORY_SEPARATOR);
$filename = APP . DS . 'logs' . DS . 'file.txt';


回答3:

if you want to communicate two or more app of your site, this trick will serve you much

$ Document_root = realpath ( \ filter_input ( INPUT_SERVER , ' DOCUMENT_ROOT '));

this is to convert the route you back real path and then just have to navigate between directories with the DIRECTORY_SEPARATOR without worrying about the operating system installed on your machine or web server



回答4:

Just realpath() is seems to be enough

Example #2