PHP анализирует include_path
в порядке приоритета.Это означает, что когда относительный путь передается в require()
, include()
, fopen()
, file()
,readfile()
или file_get_contents()
, PHP начнет искать в первом каталоге.Если файл найден, он включает его.Если это не так, он будет переходить к следующему и повторять процесс.
Рассмотрим следующий путь включения:
include_path = ".:/php/includes:/php/pear"
и следующий скрипт PHP:
<?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()
, чтобы убедиться, что оно действительно установлено правильно.