web-dev-qa-db-fra.com

Faire un chemin fonctionne à la fois sur Linux et Windows

Comment puis-je m'assurer que ce chemin:

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

fonctionne à la fois sur linux et sur windows?

30
sanders

Sous Linux, le séparateur de chemin est /. Sous Windows, il s’agit du \ ou du /. Il suffit donc d’utiliser des barres obliques et tout ira bien.

APPLICATION_PATH . '/logs/app.log'
60
Ben Lee

Vous pouvez également utiliser DIRECTORY_SEPARATOR constante au lieu de \ ou /. Généralement, vous voudrez le redéfinir pour avoir un nom plus court, comme

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

si vous voulez communiquer deux ou plusieurs applications de votre site, cette astuce vous servira beaucoup

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

ceci consiste à convertir le chemin que vous avez emprunté comme chemin réel, puis à naviguer dans les différents répertoires avec DIRECTORY_SEPARATOR sans vous soucier du système d'exploitation installé sur votre machine ou votre serveur Web.

0
Edwin Irausquin

Realpath () semble suffire

Exemple # 2

0
user2928048