Comment inclure des fichiers PHP situés à différents emplacements dans différents dossiers
P粉447002127
P粉447002127 2023-08-22 00:21:10
0
2
439

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.

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 ../functions/myfile.com. Mais ce fichier contient également d'autres fichiers, il ne fonctionne donc pas et n'inclut pas correctement les autres fichiers.

Existe-t-il un moyen de résoudre ce problème ?

P粉447002127
P粉447002127

répondre à tous (2)
P粉976737101

Si je vous comprends bien, vous avez deux dossiers, l'un est l'endroit où se trouve le script php que vous souhaitezincludedans 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 :

root includes php_scripts script.php blog content index.php

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 :

include("../../../includes/php_scripts/script.php");

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.

    P粉614840363

    Vous pouvez accéder au$_SERVER['DOCUMENT_ROOT']répertoire racinedepuis 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 exemplecontientetrequire.

    Site 1

    echo $_SERVER['DOCUMENT_ROOT']; //应该是 '/main_web_folder/';

    Les fichiers inclus sous le site 1 doivent se trouver à :

    echo $_SERVER['DOCUMENT_ROOT'].'/includes/'; // 应该是 '/main_web_folder/includes/';

    Site 2

    echo $_SERVER['DOCUMENT_ROOT']; //应该是 '/main_web_folder/blog/';

    Code actuel pour accéder aux fichiers d'inclusion duSite 1à partir duSite 2:

    include($_SERVER['DOCUMENT_ROOT'].'/../includes/file_from_site_1.php');

    Si vous essayez d'accéder à un fichier en excluant lesdocument rootrootslashes, seul lecheminrelatif au fichier sur lequel la requête est effectuée sera utilisé (non infaillible ni non spécifique à la plateforme) :

    include('../includes/file_from_site_1.php');

    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é dansEnvironnements 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 fichierpour lerobots.txtSite 1 uniquement:

    User-agent: * Disallow: /blog/

    Autres possibilités :

    Recherchez votre adresse IPet incluez l'extrait de code suivant :

    function is_dev(){ //使用来自Google的外部IP。 //如果您在本地托管,它是127.0.01,除非您更改了它。 $ip_address='xxx.xxx.xxx.xxx'; if ($_SERVER['REMOTE_ADDR']==$ip_address){ return true; } else { return false; } } if(is_dev()){ echo $_SERVER['DOCUMENT_ROOT']; }

    N'oubliez pas que si votre FAI modifie votreIP, 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 mettrecefichier 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 leJournal de la consolede votre navigateur, vous pouvez utiliser le code suivant et l'afficher dans l'interface de débogage de votre navigateur :

    if(is_dev()){ echo "".PHP_EOL; }
      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal
      À propos de nous Clause de non-responsabilité Sitemap
      Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!