Comment inclure des fichiers PHP situés à différents emplacements dans différents dossiers
P粉447002127
2023-08-22 00:21:10
<p>La majeure partie de mon site se trouve dans le répertoire racine. Dans ce répertoire se trouvent les dossiers "css", "functions" et "images". Lorsque j'inclus le fichier php dans index.php ou d'autres fichiers racine, tout fonctionne bien. Il contient et s'exécute correctement. </p>
<p>Mais le problème survient lorsque je crée un dossier appelé "blog". Il s'agit d'un tout nouveau dossier racine séparé avec le CMS et son propre fichier « racine ». Lorsque j'essaie d'inclure du CSS de la racine principale ou un fichier php du dossier "functions" de la racine principale, tout plante. Je sais que je dois l'inclure en utilisant <code>../functions/myfile.com</code>. Mais ce fichier contient également d'autres fichiers, il ne fonctionne donc pas et n'inclut pas correctement les autres fichiers. </p>
<p>Existe-t-il un moyen de résoudre ce problème ? </p>
Si je vous comprends bien, vous avez deux dossiers, l'un est l'endroit où se trouve le script php que vous souhaitez
include
dans l'autre dossier ?Si tel est le cas, il vous suffit de suivre correctement le chemin. Supposons que la structure de vos dossiers est la suivante :
Si c'est la structure de dossiers que vous avez proposée et que vous souhaitez inclure le fichier "Script.php" dans le dossier "index.php", vous devez l'inclure comme ceci :
La façon dont je le fais est visuelle. Je place le pointeur de ma souris sur index.php (pour voir la structure des fichiers) et à chaque fois que je remonte dans un dossier, je tape un autre "../". Ensuite, vous devez vous assurer que vous montez dans la structure de dossiers au-dessus du dossier dans lequel vous souhaitez commencer à accéder. Après cela, c'est la hiérarchie normale des dossiers.
Vous pouvez accéder au
$_SERVER['DOCUMENT_ROOT']
répertoire racine depuis chaque site en utilisant . Juste pour tester, vous pouvez imprimer le chemin pour vous assurer qu'il fonctionne, si vous le faites correctement. Vous ne voulez certainement pas afficher le chemin du serveur local, par exemple contient et require .Site 1
Les fichiers inclus sous le site 1 doivent se trouver à :
Site 2
Code actuel pour accéder aux fichiers d'inclusion du Site 1 à partir du Site 2 :
Si vous essayez d'accéder à un fichier en excluant les
document root
和root
slashes, seul le chemin relatif au fichier sur lequel la requête est effectuée sera utilisé (non infaillible ni non spécifique à la plateforme) :Le chemin inclus n'a sa place dans aucun code sur le front-end du site (en ligne) et doit être utilisé en toute sécurité dans Environnements de production uniquement.
De plus, pour les URL du site lui-même, vous pouvez les rendre relatives au nom de domaine. Les navigateurs remplissent automatiquement le reste car ils savent quelle page ils consultent. Alors n’utilisez pas :
Utilisez plutôt :
Pour un bon référencement, vous devez vous assurer que l’URL de votre blog n’existe pas sur un autre domaine, sinon il pourrait être marqué comme site en double. Dans ce cas, vous souhaiterez peut-être également ajouter une ligne au fichier pour le
robots.txt
Site 1 uniquement :Autres possibilités :
Recherchez votre adresse IP et incluez l'extrait de code suivant :
N'oubliez pas que si votre FAI modifie votre IP, par exemple si vous avez une IP dynamique DCHP, vous devrez modifier l'IP dans ce fichier pour voir les résultats. Je recommande de mettre ce fichier dans un fichier d'inclusion, puis de l'exiger sur la page de débogage.
Si vous avez accès à des méthodes modernes comme le Journal de la console de votre navigateur, vous pouvez utiliser le code suivant et l'afficher dans l'interface de débogage de votre navigateur :