J'ai travaillé sur un système de gestion de contenu (nakid) et l'un de mes défis les plus difficiles est la navigation dans les fichiers. Je veux m'assurer que les chemins et les paramètres de fichiers fonctionnent sur les serveurs locaux et distants. En ce moment, ma configuration est à peu près quelque chose comme ceci:Navigation dans les fichiers PHP (local et distant)
first.php (utilisé par toutes les pages):
//Set paths to nakid root
$core['dir_cur'] = dirname(__FILE__);
$core['dir_root'] = $_SERVER['DOCUMENT_ROOT'];
//Detect current nakid directory
$get_dirnakid_1 = str_replace("\\","/",dirname(__FILE__));//If on local
$get_dirnakid_2 = str_replace("/includes/php","",$get_dirnakid_1);
$get_dirnakid_3 = str_replace($_SERVER['DOCUMENT_ROOT'],"",$get_dirnakid_2);
//remove first "/"
if(substr($get_dirnakid_3, 0,1) == "/"){
$get_dirnakid_3 = substr($get_dirnakid_3, 1);
}
//Set some default vars
$core['dir_nakid_path'] = $get_dirnakid_3;
$core['dir_nakid'] = $core['dir_root']."/".$core['dir_nakid_path'];//We need to get system() for this real value - below
La raison pour laquelle je l'ai fait aussi de cette façon parce que je veux le répertoire que ce programme est assis pour être n'importe où sur le serveur ie (/ nakid) (/ cms) (/ admin/cms)
Je suis positif Je fais quelque chose dans le mauvais sens ou il y a une façon plus simple de prendre soin de tous ce.
Si elle aide à regarder de plus près le code et comment tout est utilisé, je l'ai tout à nakid.org
EDIT: Il suffit de réaliser ce que j'ai à nakid.org est un peu différent de celui mon code nouvellement publié, mais la même idée s'applique toujours à ce que je tente de faire.
J'utilise/includes/php pour trouver le chemin d'installation (first.php se trouve dans/includes/php). Dois-je faire cela d'une manière différente? – kilrizzy
J'ai un moyen pour l'utilisateur de changer le chemin dans le système, mais cette configuration initiale est avant que tout cela ait lieu – kilrizzy
Après coup, si c'est un logiciel que vous voulez publier, vous voudrez peut-être vous débarrasser des mots " local "et" remote ", car ils ne reflètent généralement pas ce que vous faites (les antislashs sont le séparateur de répertoires sur les machines Windows, et les barres obliques sous Unix/Linux et d'autres, mais ça pourrait aussi bien être l'inverse, une machine Windows étant le serveur "distant"). –