cari

Rumah  >  Soal Jawab  >  teks badan

Bagaimana untuk memasukkan fail PHP yang terletak di lokasi yang berbeza dalam folder yang berbeza

<p>Kebanyakan tapak saya berada dalam direktori akar. Dalam direktori ini terdapat folder "css", "functions" dan "images". Apabila saya memasukkan fail php dalam index.php atau fail root lain semuanya berfungsi dengan baik. Ia mengandungi dan melaksanakan dengan betul. </p> <p>Tetapi masalah timbul apabila saya mencipta folder bernama "blog". Ini adalah folder akar baru yang berasingan dengan CMS dan fail "root"nya sendiri. Apabila saya cuba memasukkan css dari akar utama atau fail php dari folder "fungsi" dalam akar utama, semuanya ranap. Saya tahu saya perlu memasukkannya menggunakan <code>../functions/myfile.com</code>. Tetapi fail ini juga mengandungi fail lain, jadi ia tidak berfungsi dan tidak memasukkan fail lain dengan betul. </p> <p>Adakah terdapat cara untuk menyelesaikan masalah ini? </p>
P粉447002127P粉447002127459 hari yang lalu525

membalas semua(2)saya akan balas

  • P粉976737101

    P粉9767371012023-08-22 16:44:45

    Jika saya faham anda dengan betul, anda mempunyai dua folder, satu di mana skrip php yang anda mahu include ke dalam folder lain?

    Jika ini berlaku, anda hanya perlu mengikut laluan dengan betul. Andaikan struktur folder anda adalah seperti berikut:

    root
        includes
            php_scripts
                script.php
        blog
            content
                index.php

    Jika ini ialah struktur folder yang anda buat, dan anda ingin memasukkan fail "Script.php" ke dalam folder "index.php", anda perlu memasukkannya seperti ini:

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

    Cara saya melakukannya adalah secara visual. Saya meletakkan penunjuk tetikus saya di atas index.php (untuk melihat struktur fail), dan setiap kali saya naik folder, saya menaip "../" lain. Kemudian anda perlu memastikan bahawa anda pergi ke struktur folder di atas folder yang anda mahu mula masuk. Selepas itu, ia adalah hierarki folder biasa.

    balas
    0
  • P粉614840363

    P粉6148403632023-08-22 09:38:21

    Anda boleh mengakses $_SERVER['DOCUMENT_ROOT']direktori akar dari dalam setiap tapak menggunakan . Hanya untuk ujian, anda boleh mencetak laluan untuk memastikan ia berfungsi, jika anda melakukannya dengan cara yang betul. Anda pasti tidak mahu menunjukkan laluan pelayan tempatan, contohnya mengandungi dan memerlukan .

    Tapak 1

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

    Fail yang disertakan di bawah tapak 1 hendaklah di:

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

    Tapak 2

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

    Kod sebenar untuk mengakses termasuk fail dari Tapak 1 dari Tapak 2:

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

    Jika anda cuba mengakses fail dengan mengecualikan document rootrootslash, hanya path relatif kepada fail yang pertanyaan dijalankan akan digunakan (bukan maksum atau bukan platform khusus):

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

    Laluan yang disertakan tidak mempunyai tempat dalam mana-mana kod pada bahagian hadapan tapak (dalam talian) dan harus digunakan dengan selamat dalam Persekitaran pengeluaran sahaja.

    Selain itu, untuk URL tapak itu sendiri, anda boleh menjadikannya relatif kepada nama domain. Pelayar mengisi selebihnya secara automatik kerana mereka tahu halaman yang mereka lihat. Jadi, jangan gunakan:

    <a href='http://www.__domain__name__here__.com/contact/'>联系</a>

    Sebaliknya gunakan:

    <a href='/contact/'>联系</a>

    Untuk SEO yang baik, anda perlu memastikan URL blog anda tidak wujud pada domain lain, jika tidak, ia mungkin ditandakan sebagai tapak pendua. Dalam kes ini, anda juga mungkin mahu menambah baris pada fail untuk robots.txtTapak 1 Sahaja:

    User-agent: *
    Disallow: /blog/

    Kemungkinan lain:

    Cari alamat IP anda dan sertakan coretan kod berikut:

    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'];       
    }

    Ingat, jika ISP anda menukar IP anda, contohnya jika anda mempunyai IP dinamik DCHP, anda perlu menukar IP dalam fail ini untuk melihat hasilnya. Saya syorkan meletakkan fail itu dalam fail sertakan dan kemudian memerlukannya pada halaman nyahpepijat.

    Jika anda mempunyai akses kepada kaedah moden seperti Console log penyemak imbas anda, anda boleh menggunakan kod berikut dan melihatnya dalam antara muka nyahpepijat penyemak imbas anda:

    if(is_dev()){
        echo "<script>".PHP_EOL;
        echo "console.log('".$_SERVER['DOCUMENT_ROOT']."');".PHP_EOL;
        echo "</script>".PHP_EOL;       
    }

    balas
    0
  • Batalbalas