tout dépend du point de départ, point de départ qui dépend de la position du fichier, du dossier de travail en cours, de l'emplacement où le programme est exécuté, .... (tout dépend du contexte)
le ".." permet de remonter d'un niveau
le "." fait référence au dossier en cours
le "/" sert en général à éviter de doubler le "\" pour l'échapper (sous windows) et ça dépend aussi des langages
sous Linux "/" est le dossier racine
Une "astuce" c'est d'indiquer un chemin absolu, mais si on déplace les fichiers, il faut réactualiser ces chemins; ou de travailler avec un chemin de base à partir duquel tous les autres chemins seront définis (base+"..\cobase\fichier.tx", base+"\sous-dossier\fichier2.txt" par exemple)
le ctrl+shift+h permet de faire un "chercher/remplacer dans les fichiers", je ne vois pas ce que ça vient faire ici.
Ta question est très vague et manque de contexte: on devine seulement que c'est du PHP parce que tu évoques "require_once"
Si tu veux une explication sur le cheminent effectué dans ton cas, il nous faudra plus de détail, à commencer par ce chemin et le positionnement de ton fichier (au minimum)
> oui c'est bien du PHP (désolée pour cet oubli basique...)
> j'ai juste créé un site "horoscope" où seul l'admin a accès au CRUD (les membres ne peuvent que consulter)
> vu que j'ai créé l'accueil à la racine ... et séparé tout le reste :
en POO j'ai testé l'autoloading : ça n'a pas fonctionné... car le chemin n'est pas le même
==> effectivement j'ai résolu le problème en intégrant tout le code dans le même dossier pour que les chemins restent similaires (autoloading réussi)
Du coup je n'ai plus de fichier racine, mais le tout fonctionne !
* et pour le "ctrl+shift+h" j'avais trouvé cette astuce pour trouver un fichier, et ce n'était pas spécifié "remplacer" : alors merci aussi pour ce détail !
Un premier point : un include, ou un require, ça peut avoir comme point de départ le dossier qui contient le source qui est exécuté.
Exemple : je suis dans test (*) et je lance la commande pour exécuter m1.php
php test/m1.php
et comme dans m1.php il y a
<?php
require("lib/foo.php");
bar();
ça va faire l'inclusion de test/lib/foo.php, parce que le fichier m1.php est dans test.
Et dans le fichier foo.php il y a
<?php
require("bar.php");
qui va inclure test/lib/bar.php, puisque foo.php est dans test/lib
Dans bar.php, il y a une définition de fonction
<?php
function bar() {
echo ("fonction bar appelée\n");
}
et donc, c'est cette fonction qui est exécutée quand j'exécute le script
$ php test/m1.php
fonction bar appelée
Second point : on peut aussi jouer avec l'include_path, une chaine de caractères qui indique dans quels dossiers il faut aller chercher les fichiers qu'on veut inclure.
Exemple, dans test, à coté de m1.php, on ajoute un fichier m2.php qui contient
comme lib figure dans l'include_path, de m2.php qui est dans test, php ira regarder dans test/lib si il y a un fichier foo.php
(*) non c'est faux, en fait moi je suis dans ma chaise devant le clavier (**). En vrai, je veux dire que le répertoire courant (du shell qui s'exécute dans la fenêtre où je tape mes commandes) c'est le dossier/répertoire test.
?php
require("bar.php");
(**) c'est faux aussi. Au moment où vous lisez, il y a des chances que je sois ailleurs.
> c'est vrai qu'un dossier 'ne fonctionne' pas... je pense que j'avais placé une variable 'chemin' importante stockée dans le gitignore de mon cerveau . Comme je parlais de chemin au début, je pensais naturel que je parlais aussi du moyen (chemin gitignoré) d'accéder au dossier/fichier. Parfois les chemins pour arriver aux slashes ou doubles slashes (destination convoitée) me returnent une error.
=> merci pour le conseil : je vais effectivement me poser pour bien étudier les chemins à l'avenir, mais surtout, désormais, je prévois d'avance la structure de mes projets!
- Edité par codelys 2 octobre 2024 à 10:56:38
Se renouveler c'est monter en compétences
IDE: Trouver le path d'un fichier depuis un autre
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
Se renouveler c'est monter en compétences
Se renouveler c'est monter en compétences
Se renouveler c'est monter en compétences