2011-02-02 1 views
0

Привет Я пытаюсь свернуть функциональность редактора электронных таблиц Excel в существующее приложение. Я использую php 5.3 с пространствами имен и имею очень трудное время для загрузки необходимых классов.PEAR Spreadsheet Excel Writer Autoload

Я думаю, что проблема в том, что имена файлов «Writer.php, но методы класса являются„Spreadsheet_Excel_Writer()“Мой автозагрузчика устанавливается следующим образом:.

function __autoload($class) { 
    $class = str_replace('\\', '/', $class); 

    $splitArray = explode("_", $class); 
    $class = $splitArray[(sizeof($splitArray) - 1)]; // piece1 

    include($class . '.php'); 
} 

который загружает остальную часть моего классы просто прекрасны, но не загружают электронные таблицы.Если я переименую файлы в соответствии с именами методов, это терпит неудачу при попытке загрузить классы OLE. Я действительно не хочу идти и переименовывать все классы в PEAR, чтобы получить это

Кто-нибудь знает об этом лучше?

Спасибо!

+0

Попробуйте PHPExcel вместо - HTTP: //phpexcel.codeplex.com/ – mfonda

ответ

0

Попробуйте добавить свой PEAR путь к вашему include_path, то

require_once "Spreadsheet/Excel/Writer.php" 

Вы также можете затем хотите явно требуют классы OLE тоже.

В зависимости от вашей ОС имена файлов могут быть чувствительны к регистру.

+0

она по-прежнему дает мне ошибку: 'Фатальная ошибка:«утилиты \ Spreadsheet_Excel_Writer»класс не найден в коммунальном хозяйстве/Spreadsheet.php на линии 23' ' Я думаю, потому что автозагрузчик ищет« Spreadsheet_Excel_Writer.php » – Eric

+0

Это то, что вам нужно обрабатывать на автозагрузчике, тогда –

0

Я понял, как получить класс для загрузки, однако это приведет к дальнейшим проблемам. Кажется, что PEAR (или, по крайней мере, версия PEAR на общем хосте) несовместим с пространствами имен php 5.3.

Так что, пока я в конце концов получил класс для загрузки, я в конечном итоге не смог загрузить PEAR.

Как работа вокруг, я закончил писать XML-документ в формате XLS и сохранил его как файл .xls. Это может быть не идеальное решение, но оно работает.

Спасибо за ввод, хотя!