先日のPHP勉強会の発表で取り上げた、csv Datasourceはcsvが非常に馴染み深いフォーマットなので Datasourceの挙動を理解するのにはとても良い教材だと思います。しかし、findやpaginateには対応していない簡易なものなので発表した勢いで簡単なfindとpaginateの対応を追加してみました。 http://github.com/kaz29/datasources/tree/csv 当初ベタっと(^^; 実装していたのですが、id:hiromi2424 さんのtweetをみて Set::matches を使う方法に変更しました。Set::matchesでサポートしている演算子であれば正常に動作すると思います。 実際のfindは、DBOを扱うときと同様な以下の形式に対応しています。 " => 10, "status" => 1 ); $conditions = a
面倒い問題 † CSV のパースは一見簡単だがダブルクオートで囲った形式も扱おうとすると厄介な問題である。 毎回悩むのでここにパース用関数をメモっておく。 ↑ パース関数の実装 † ここでは以下の条件を満たす形式の CSV を対象とします。 *1 区切りはカンマである。 データにカンマを含む場合はダブルクオートで囲う。 ダブルクオートで囲ったデータ中のダブルクオートはダブルクオート2回で置き換える。 ↑ PHP版 † /** * CSV の1行をパースします。 * この関数が対応しているCSVの行形式は以下の通りです。 * ・区切りはカンマである。 * ・データにカンマを含む場合はダブルクオートで囲う。 * ・ダブルクオートで囲ったデータ中のダブルクオートはダブルクオート2回で置き換える。 * * @return CSV をパースした結果の配列 */ function parse_csv(
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く