2011-02-02 20 views
0

こんにちは私はExcelスプレッドシートライターの機能を既存のアプリケーションに折りたたみようとしています。私は、名前空間でPHP 5.3を使用しており、ロードするのに必要なクラスを取得するのに非常に時間がかかっています。PEARスプレッドシートExcelライターオートロード

私は私のオートローダーは、このように設定されている問題は、ファイル名は「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

てみます。また、その後、明示的にあまりにもOLEのクラスを必要とする場合があり、その後

require_once "Spreadsheet/Excel/Writer.php" 

、あなたのinclude_pathにごPEARのパスを追加します。

OSによっては、ファイル名が大文字と小文字を区別することもあります。

+0

それはまだ私にエラーを与える: '致命的なエラー:クラスのSpreadsheet_Excel_Writer \ユーティリティは '行23' 上のユーティリティ/ Spreadsheet.phpには見られません' オートローダーが「Spreadsheet_Excel_Writer.php」を探しているからだと思います – Eric

+0

これはあなたのオートローダーで処理する必要があるものです –

0

クラスを読み込む方法を理解しましたが、それ以上の問題が発生します。 PEAR(または少なくとも共有ホスト上のPEARのバージョン)は、PHP 5.3の名前空間と互換性がないようです。

最終的にクラスをロードしているうちに、私は最終的にPEARをロードできませんでした。

回避策として、私はXLS形式のXML文書を作成し、.xlsファイルとして保存しました。それは完璧な解決策ではないかもしれませんが、機能します。

入力いただきありがとうございます!

関連する問題