PHP全局路径设置


PHP global path setting

我有这个设置。

 root dir| 
       index.php
       config.php
       file.php  |
                 |
                 |scripts|a.js
                 |
                 |account
                         |index.php
                         |         |
                         |member   |index.php
  • 现在,我已经将成员dir的index.php包含到帐户dir的index.php中。此外,帐户index.php还包括config.php,其中包含

    define( 'PATH', (__DIR__) );
    

现在,对于帐户index.php中的所有包含,我使用

require_once( PATH . ''file.php' ); 

,并且工作正常。但当我尝试添加路径的脚本src,如

<script type="text/javascript" src="<?php '.PATH.'scripts/livevalidation.js ?>"></script>

我得到一个错误,所以我怎么能包括a.js在脚本文件夹到index.php帐户使用全局定义的路径。

谢谢。

PHP "__DIR__"answers"__FILE__"对服务器是绝对的。你不需要在你的脚本中使用它们。

<script src="/scripts/livevalidation.js"></script>

另外,你的PHP看起来有一些语法错误,这将是正确的(尽管仍然不能工作:

<script src="<?php echo PATH.'/scripts/livevalidation.js'; ?>"></script>

您在script标记的PHP语句中缺少printecho语句。你还把连接周期放在了错误的地方。然而,最重要的是,您尝试包含的JavaScript不需要出现在PHP语句中。

话虽如此,最后一行应该是这样的:

<script type="text/javascript" src="<?php echo PATH ?>scripts/livevalidation.js"></script>

最重要的是,然而,我不认为上面会像你期望的那样工作。__DIR__输出服务器端文件系统路径,这在通过HTTP导入JavaScript时是没有意义的。我推荐一些类似以下的内容:

<?php define('URL_ROOT', '/'); ?>
<script type="text/javascript" src="<?php echo URL_ROOT ?>scripts/livevalidation.js"></script>

在上面的示例中,URL_ROOT将指向一个绝对URL,在此URL下提供静态媒体(CSS, JavaScript等)。