PHP анализирует include_path
в порядке очередности. Это означает, что когда относительный путь передается в require()
, include()
, fopen()
, file()
, readfile()
или file_get_contents()
, PHP начнет искать в первом каталоге. Если файл найден, он включает его. Если нет, он будет продолжен до следующего и повторит процесс.
Рассмотрим следующий включать путь:
include_path = ".:/php/includes:/php/pear"
и следующий скрипт:
<?php
require('MyFile.php');
PHP будет искать MyFile.php
в следующем порядке:
./MyFile.php
(текущий каталог)
/php/includes/MyFile.php
/php/pear/MyFile.php
Причина, почему вы не можете загрузить Validate.php
это у вас уже есть файл с именем validate.php
(помните, пути не чувствительны к регистру на Windows, но в UNIX) в текущем каталог. Поэтому PHP включает в себя ваш файл вместо файла, соответствующего PEAR::Validate
, так как ваш найден до PEAR в порядке приоритета include_path
.
Просто переименуйте свой файл на что-то еще, кроме validate.php
, чтобы исправить вашу проблему. Если он все еще не работает, попробуйте повторить возвращаемое значение get_include_path()
, чтобы убедиться, что оно действительно установлено правильно.
Попробуйте груши установить Validate-0.8.3 и отправьте нам грушу включить путь – streetparade