Я делаю это из памяти, так что это может быть не совсем правильно, но я думаю, что вы путаете разделитель пути и каталога. Может также быть более хороший способ сделать это, чем то, что вы делаете (то есть собирать весь путь сразу). Попробуйте что-то вроде этого:
define('INSTALL_PATH', dirname(dirname(__FILE__)));</p>
<p>set_include_path(get_include_path() . PATH_SEPARATOR . INSTALL_PATH . DIRECTORY_SEPARATOR . 'program' . DIRECTORY_SEPARATOR . 'lib');
set_include_path(get_include_path() . PATH_SEPARATOR . INSTALL_PATH . DIRECTORY_SEPARATOR . 'program' . DIRECTORY_SEPARATOR . 'include');
set_include_path(get_include_path() . PATH_SEPARATOR . INSTALL_PATH . DIRECTORY_SEPARATOR . 'program');
Обычно я немного сжимаю это с помощью взрыва, так как DIRECTORY_SEPARATOR
настолько многословно:
...PATH_SEPARATOR . implode(DIRECTORY_SEPARATOR, Array(INSTALL_PATH, 'program', 'lib'));
Я думаю, что (что наиболее важно) изменив некоторые из ваших PATH на DIRECTORYs и (возможно) с помощью дополнительных вызовов get_include_path
и set_include_path
, он станет более читабельным, переносимым и просто может работать правильно.