【问题标题】:php include vs library; correct pathphp包含vs库;正确的路径
【发布时间】:2012-06-01 12:24:30
【问题描述】:

我一直在尝试研究更好地使用什么来包含网站的重复部分 - php 包含函数或库(在 Dreamweaver 中提供)。

或者也许还有其他更好的方法可以达到同样的效果?

目前我使用 php 包含和绝对路径。我从服务器下载了网站,但似乎在服务器上工作的路径在我的本地主机上不起作用。 编写路径以使它们在两个服务器上都工作而无需重新编写代码的正确和最佳方法是什么?

谢谢

【问题讨论】:

  • 我不知道 Dreamweaver 库是做什么的,但如果它除了include()ing 代码部分之外还有其他功能,那就是做错了 :) 使用包含是一个很好的方法,如果你的包含文件增长,也许看看OOP and autoloading.

标签: php path include


【解决方案1】:

您可以在脚本开头调用 set_include_path() 命令并指定库的相对路径

http://www.php.net/set_include_path

【讨论】:

    【解决方案2】:

    由于织梦者使用库,那可能是错误的;)

    如果您想确保只包含一次代码,您可以改用require_once

    尝试相对路径而不是绝对路径

    【讨论】:

      【解决方案3】:

      解决这个问题的一个简单方法是在根目录中定义一个常量,通常在你的 index.php 文件中。

      /**Path Environment**/
      $root=pathinfo($_SERVER['SCRIPT_FILENAME']);
      define ('BASE_FOLDER', basename($root['dirname']));   
      define ('SITE_ROOT',    realpath(dirname(__FILE__)));
      define ('SITE_URL',    'http://'.$_SERVER['HTTP_HOST'].'/'.BASE_FOLDER); 
      

      然后您可以在整个脚本中使用SITE_URLSITE_ROOT,知道它是您的网络根目录的正确路径。

      所以你的旧包含看起来像:

      include('/srv/www/somesite.com/public_html/somefile.php');

      并且您的新包含将看起来像include(SITE_ROOT.'/somefile.php');,然后在 Windows 上开发时,路径将相应更改。

      【讨论】:

        【解决方案4】:

        include_path = ".:/your/absolute/path"
        

        在您的 php.ini 中,包括服务器环境和本地主机。 然后你可以在代码的任何地方访问包含路径文件。

        【讨论】:

          猜你喜欢
          • 2013-07-14
          • 1970-01-01
          • 2014-09-12
          • 1970-01-01
          • 1970-01-01
          • 2011-02-15
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多