function __autoload
Код:
function __autoload($className)
{
$pos = strpos($className, "_");
$dir = substr($className, 0, $pos); //название папки где искать файл
//классы обьявленны в соответствующих файлах и папках
include_once($dir.'/'.$className.'.php');
}
{
$pos = strpos($className, "_");
$dir = substr($className, 0, $pos); //название папки где искать файл
//классы обьявленны в соответствующих файлах и папках
include_once($dir.'/'.$className.'.php');
}
Суть функции думаю понятна Если надо найти класс Controller_Shop то он находиться в папке Controller в файле Controller_Shop.php . На локальном хосте работает все супер на у провайдера нет выдает ошибку:
Warning: include_once(Controller/Controller_Main.php) [function.include-once]: failed to open stream: No such file or directory in /home/u223011405/public_html/index.php on line 11
Warning: include_once() [function.include]: Failed opening 'Controller/Controller_Main.php' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in index.php on line 11
Fatal error: Class 'Controller_Main' not found in index.php on line 40
Попытался спросить в тех поддержке они меня мол иди учи пхп а к нам стакими вопросами не приставай.
Я так к понимаю это надо какой то редирект прописать или что?
Код:
function __autoload($className)
{
//$pos = strpos($className, "_");
//$dir = substr($className, 0, $pos); //название папки где искать файл
//объявления классов в соответствующих файлах
include_once($className.'.php');
}
{
//$pos = strpos($className, "_");
//$dir = substr($className, 0, $pos); //название папки где искать файл
//объявления классов в соответствующих файлах
include_once($className.'.php');
}
Попробуй задать абсолютные пути с помощью dirname(__FILE__). И еще стоит почитать про версии PHP.
если дома винда, а на сервере - линеподобное, то проверь большие и маленькие буквы у папок и файлов
Цитата: Mr.Hacker
если дома винда, а на сервере - линеподобное, то проверь большие и маленькие буквы у папок и файлов
то есть и папку тоже надо назвать с большой буквы ?
если она у вас, судя по описанию, запрашивается с большой буквы - то да, в системе она тоже должна быть с большой буквы.. в лине это разные папки