CakePHPの勉強会で、英語に負けずコードをばんばん読んでいこう!という話があったので、Bakeryの中を覗いて見つけたソースを動かすというのをやってみました。 今回はCSVファイルをfind一発で読んでしまおうというヤツです。 元はSiegfriedHirschさんが作成されました。 CSVファイルをデータベースっぽくする為に、いくつか準備をします。 CakePHPの勉強会で、英語に負けずコードをばんばん読んでいこう!という話があったので、Bakeryの中を覗いて見つけたソースを動かすというのをやってみました。 今回はCSVファイルをfind一発で読んでしまおうというヤツです。 元はSiegfriedHirschさんが作成されました。 CSVファイルをデータベースっぽくする為に、いくつか準備をします。 1./models/datasources/csv_source.phpを設置する。
CSVをデータソースとして扱えるようにする CsvSource というプラグインがあります。 コントローラーの $uses にCSVを使うモデルを設定したら、Bake で View を焼く際にエラーが出るようになってしまいました。 CsvSource とは http://github.com/cakephp/datasources CakePHP の github に datasources というリポジトリがあります。 CsvSource をはじめ、いくつかのデータソースが扱えるプラグインになってます。 環境 Mac Mac OS X 10.5.8(Leopard) MAMP 1.7.2 CakePHP 1.3.0 php 5.2.6 エラーの状況 <?php class Csv extends AppModel{ public $useDbConfig = 'csv'; } CsvSo
CakePHPでcsvエクスポートするには便利なcsvヘルパーが用意されています。 csvヘルパーをコピーアンドペーストして、csv.phpというファイル名にします。 その後、views/helpers/配下に配置します。 コントローラ側は以下のように記述します。 デバッグモードにしているとデバッグもエクスポートされるため、デバッグモードをオフにします。 function csvexport() { var $helpers = array('Csv'); Configure::write('debug', 0); // デバッグオフ $this->layout = false; $this->set('data', $this->User->find('all')); } ビュー側は、csvexport.ctpというファイルを作成し、以下のように記述します。 addGridの第二引数でヘ
■CSVヘルパーのインストール まず、CakePHP1.2で使えるCSVヘルパーを落とす。 【PHP5】 http://bakery.cakephp.org/articles/view/csv-helper-php5 【PHP4互換】 http://ifunk.net/cakephp/helpers/csv.php.txt リンク先はPHP5と、PHP4互換の2種類あるが、今回念のためPHP4互換を使ってみる。 ページを表示したらコピーして、csv.phpという名前で保存する。 ※WebサーバがPHP5のみインストールされているのであれば、躊躇無くPHP5版を選ぶと良い。 というわけで、csv.phpファイルを [/Path/To/CakePHP/App/views/helpers/csv.php] に設置する。 これでCSVヘルパーのインストールは完了。 ■CSVヘルパー事前準備 コント
CakePHP2対応したのCSVヘルパーはこちらです。 FastCSV ヘッダだとか文字化けで取っつき難いCSV関連 最初に言っておきます、CSV Helperはとても易しく使いやすいです。 →CSV Helper (PHP 5) ザッとマニュアルを見てから思い通りの実装・出力まで30分程度でした。 それでは、さっそく使い方を説明します。 1.まず、「app/views/helpers/」に「csv.php」を作成して 以下のソースをそのままコピペしてください。 <?php class CsvHelper extends AppHelper { var $delimiter = ','; var $enclosure = '"'; var $filename = 'Export.csv'; var $line = array(); var $buffer; function CsvHelp
Excelなどの表計算ソフトで利用できるようCSVファイルのインポート機能・エクスポート機能を実装する。 UTF-8からShift-JISに変換すると文字化けするので、CSVファイルでエクスポートする際のエンコーディングをSJIS-winにする。 インポートする際は、SJIS-winからUTF-8に変換して、データベースに保存する。 UTF-8のBOMを削除する。 CSVファイルの見出し行の項目名は、データベースのフィールドと対応させた日本語にする。 PHPのfgetcsv()は、値の1文字目が文字化けするというバグがあるので、文字化けしないよう処理を施す。 例)ECサイトの商品のインポート機能・エクスポート機能を実装 ■app/config/csv.php <?php function getCsvHeader($pattern = null) { $arr = array( 'id'
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く