簡體   English   中英

在 php 中使用 dirname(__FILE__ ,2) 的問題

[英]problem with using dirname(__FILE__ ,2) in php

我嘗試使用 dirname( FILE ,2)

我在“public”目錄中有 index.php 文件

Project

  |--app

   --config

      |--init.php

   --public

      |--css
       
       --js
   
       --index.php

   --resources

      |--inc

       --langs

   --favicon.ico

index.php 中

<?php
   $pageTitle = "Home";
   define('__BASEDIR__', dirname(__FILE__ ,2) );
   echo __BASEDIR__ . '<br>';
   require_once (__BASEDIR__ . '/config/init.php');
   ?>

此打印: ...\\xampp\\htdocs\\project

init.php 中:

<?php

     $templ  = __BASEDIR__ . '/resources/inc/';

     $lang   = __BASEDIR__ . '/resources/langs/';

     $css    = __BASEDIR__ . '/public/css/';

     $js     = __BASEDIR__ . '/public/js/';

      echo $templ .'<br>';

      echo $lang .'<br>';

      echo $css .'<br>';

      echo $js .'<br>';

      require_once $templ . 'header.php';

      require_once $templ . 'navbar.php';

它顯示在瀏覽器中

...\xampp\htdocs\project

...\xampp\htdocs\project/resources/inc/

...\xampp\htdocs\project/resources/langs/

...\xampp\htdocs\project/public/css/

...\xampp\htdocs\project/public/js/

注意這個...\\project/.... /* backslash */

瀏覽器找不到文件(style.css、script.js....)

首先,如果斜線的差異困擾你,你可以像這樣使用DIRECTORY_SEPARATOR設置你的路徑

$templ  = __BASEDIR__ . '/resources/inc/';

define('DS', DIRECTORY_SEPARATOR);
$templ  = __BASEDIR__.DS.'resources'.DS.'inc'.DS;

其次,您將無法使用該相對路徑來加載 js 和 css 文件等瀏覽器資源。 您需要查看絕對路徑。

示例:假設您在 Windows 上,路徑$templ將沿着這些行C:\\xampp\\htdocs\\project\\public\\css\\file.css這將無法加載您的瀏覽器資源。 如果您的文檔根目錄是C:\\xampp\\htdocs\\project\\您將需要使用/public/css/file.css來加載您的 css 或 js 文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM