タグ

csvに関するtyoro1210のブックマーク (7)

  • 【PHP】その CSV 変換、本当に「fgetcsv」でいいの?

    こんにちは。ウェブ開発担当の木戸です。 突然ですが、PHPCSV ファイルを連想配列に変換してゴニョゴニョ…ってよくやりますよね? 私も先日開発中に、CSV の関数なんだったかなーと思って「php csv」で検索していたのですが、ファーストビューが定番の fopen して fgetcsv の公式サンプルや記事ばかりでタイトル通り「?」だったので、調査してみたところ、意外と面白いことがわかりました。 やっぱり fgetcsv だけじゃなかった 似たような機能を持つ関数が複数あり、公式ドキュメントを見てもどれを使っていいかわからない、なんてこと PHP ではよくありがちです。CSV 変換もやっぱりいろんな方法がありました。 そこで今回は、あらゆる CSV 変換処理を検証し、処理時間とメモリ使用量を比較します。処理はレコードごとの連想配列に変換するのみで、よくセットでやる文字コードの変換や

    【PHP】その CSV 変換、本当に「fgetcsv」でいいの?
  • csvモジュールがUnicode入力をサポートしていない罠 - bonlife

    id:piro_sukeさんがアレコレやってるのを見てちょいと試しているうちに、予想外なところで罠にハマってしまったbonlifeです。同じことで躓く人はあまりいないような気がしますが、備忘録メモです。 csvモジュールで日語を扱う場合に気をつけないと悲しい気持ちになってしまうかもしれませんよ、というお話。 サンプル1 sys.getdefaultencoding() で得られる文字コードは cp932 ファイルの文字コードは cp932 出力するCSVの文字コードは cp932 # -*- coding: cp932 -*- import sys import csv import codecs print "default encoding : %s" % (sys.getdefaultencoding()) f = codecs.open('out.csv','wb','cp932

    csvモジュールがUnicode入力をサポートしていない罠 - bonlife
  • CSV形式のファイルをDataTableや配列等として取得する

    CSV形式のファイルをDataTableや配列等として取得するCSV(Comma Separated Value)形式のファイルをDataTableや配列として読み込む方法を幾つか紹介します。ここでは3つの方法を紹介しますが、その前にCSVとはなにかについて確認しておきます。 CSV形式とは?CSV形式について、絶対的な決まりは存在していないようです。ただし、一般的なアプリケーションで使われている決まりについては、「CSV Comma Separated Value File Format (How To)」で説明されています。 要約しますと、次のようになります。 レコードは、LFまたはCRLFで区切られる。フィールドは、カンマ(,)で区切られる。区切りのカンマの前後のスペース(タブを含む)は無視される。フィールドにカンマが含まれる場合、フィールドをダブルクォート(")で囲まなければならな

    CSV形式のファイルをDataTableや配列等として取得する
  • 住所から緯度経度を一括変換するツール | ナップザック

    住所から緯度経度を一括で調べるツール(+標高もね) 説明 お知らせ 当社Webサービスの見直しに伴い、当サービスは休止いたします。 現在のところサービス再開は未定です。 このツールは、Google Maps(グーグル マップス)とGoogle Geocoder(グーグル ジオコーダー)を利用して、住所から緯度経度(と標高)を個別または一括変換で調べるツールです。 緯度経度を調べたい住所(例えば、ビックカメラ有楽町店なら「東京都千代田区有楽町1-11-1」)を[住所]テキストフィールドに入力して、[住所 → 緯度経度]ボタンをクリックしてください。緯度経度がテキストフィールドに表示され、地図上にその場所がマークされます。緯度経度に対応するGeoHash値も表示します。 地図上をマウスで左クリックすると、その場所の緯度経度とGeoHash値をテキストフィールドに表示します。 緯度経度とGeoH

  • PHPでメモリ上に一時ファイルを作る - hnwの日記

    blog.plastik.jp » PHP5 の fgetcsv() で読み込み内容が腐る現象」という記事を読みました。fgetcsv()だとSJISのCSVファイルがうまく読めないので、UTF-8に直してテンポラリファイルに保存してfgetcsvで読み込む、という筋書きのようです。 ちゃんとtmpfile()を使っていたりしてナイスなコードだと思います。でも、すぐ不要になるデータをディスクに書き込むのはイマイチじゃないでしょうか。ここはメモリに書いた方がカッコいいと思うんです。僕なら下記のようにします。 <?php $data = file_get_contents("example.csv"); $data = mb_convert_encoding($data, "UTF-8", "Shift_JIS"); $fp = fopen('php://memory', 'r+'); fw

    PHPでメモリ上に一時ファイルを作る - hnwの日記
  • PHP5でfgetcsvが正常に動作しない : ::yossy.blog::

    Posted on 7月 19, 2006 Filed Under PHP | CSVのインポート機能を持ったシステムをPHP4環境からPHP5環境へ移行したら、 なぜかCSVデータを正しく読み込んでくれない。っていうか一文字目が文字化け。 超悩んだあげくぐーぐるさんで検索しても以下のような記事しかみつからず。 [PHP-dev 1205] PHP5のfgetcsv()関数について 人力検索はてな - PHP4からPHP5へソースの移(長いので略) csvファイルを読み込むと1バイト目の日語が文字化け 3つ目の掲示板のyossyはあたくし自身なんですが・・・。 setlocaleとかいろいろ試してもしても結局読み込まれるCSVの文字コードは ほとんどSJISなせいなためかなんだかうまくいきません。 ちなみに検証環境はほぼFedoraCore4のデフォルトです。 PHPは5

  • CSVファイルの一般的書式 (RFC4180 日本語訳) - アルプス登山の玄関口・笠井家

    2005年10月に公開された、RFC4180「Common Format and MIME Type for Comma-Separated Values (CSV) Files (CSVファイルの一般的書式、およびMIMEタイプ) 」の日語訳です。謝辞と文献の箇所は原文のままです。 データ交換において頻繁に使われるCSV形式ですが、ベンダの独自仕様が乱立しているのが実情です。 RFCは、遅まきながら出てきた、最初にして唯一の、「公式(?)」な仕様です。もっとも、区分 (Category) がInformationalのRFCなので、「標準」ではありませんが… 原文は、http://www.ietf.org/rfc/rfc4180.txt をご参照下さい。邦訳の誤りにお気づきの場合、ページ最下部のメールアドレスまでご連絡いただければ幸いです。 なお、可読性向上のため、ページのヘッダ・フ

  • 1