1

このコードを使用して、プロジェクトのディレクトリパスを定義しています。

config.phpは

<?php
define('CB_HOME', realpath(dirname(__DIR__)));
define('FD_HOME', CB_HOME."/testbot");

私は他のファイルでCB_homeとFD_homeを使用しています。

エラーが発生しています:

PHP Notice:  Use of undefined constant CB_HOME - assumed 'CB_HOME' in C:\\xampp\\htdocs\\test-bot\\testbot\\bootstrap.php on line 3
PHP Warning:  require_once(CB_HOME/AbstractCbRest.php) [<a href='function.require-once'>function.require-once</a>]: failed to open stream: No such file or directory in C:\\xampp\\htdocs\\test-bot\\testbot\\bootstrap.php on line 3
 PHP Fatal error:  require_once() [<a href='function.require'>function.require</a>]: Failed opening required 'CB_HOME/AbstractCbRest.php' (include_path='.;C:\\xampp\\php\\PEAR') in C:\\xampp\\htdocs\\test-bot\\testbot\\bootstrap.php on line 3

私のbootstrap.phpは:

<?php 
require_once 'config.php';
require_once CB_HOME.'/AbstractCbRest.php';

どこがおかしいの?

4

2 に答える 2

1

私の推測では、include_path設定がスクリプトに干渉していると思います。したがって、(@ decezeで言及されているように)誤った(既存の)config.phpファイルをロードしている可能性があります。

絶対パスを使用して構成を含めるか、次の行に沿って何かを使用してみてください。

require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'config.php';
于 2012-05-22T08:40:58.087 に答える
-1

2つの「\」が付いたWindowsパスが機能しないことは明らかです。二重の円記号を削除するには(注:これは解決策ではなく回避策です)、次のようにします。

$someValue = 'C:\\xampp\\htdocs\\test-bot\\testbot\\'; $someValue = preg_replace('/\\\\/u', '\\', $someValue);

またはあなたの場合:

define('CB_HOME', preg_replace('/\\\\/u', '\\', realpath(dirname(DIR))));
于 2012-05-22T08:28:02.360 に答える