メシのタネ

Webプログラミング 備忘録

  • DOMをPHPで操作できたらいいよね

    そうだよね。そう思うよね。JavaScriptでやると、画面がガタついたりするもんね。そうならないようにする方法もあるかもしれないけど、僕はできませんので、サーバー側でなんとかできたらええなぁと思って挑戦したけど、できませんでしたよ。PHP標準でHTMLをDOMにできるらしい今、技[...]

    続きを読む
  • 設計書ってなんで書くの?

    設計書をなぜ書くのかから始めてかれこれ3年近くこの禅問答をやっているわけですが、いまだに答えは出ません。ただ、その禅問答をやる中で設計書に対する取り組み方は大きく変わったので、その一部でも書いていきたい。基本設計はとにもかくにも必要だと思う設計書はいらぬ!という話をよく聞くし、自分[...]

    続きを読む
  • 書ききってやる。

    久々に書いてみる。久々に文章を書くということをやってみようと思う。伝える作業を観察したいと思ったからそうしたいと考えた。情緒的な文章は基本的にゴミ箱にぽいしてきましたが、情緒的なのも自分だと思う。「文章をかくという作業は、とりもなおさず自分と自分をとりまく事物との距離を確認すること[...]

    続きを読む
  • 普通の会社で2年普通に働いて思う事

    えらい寒くなりました。文句言いながらも現職を続けて2017年12月1日にめでたく2年がたちました。分かりやすいが乱暴に言えばITドカタと呼ばれる業界に入って案件のヒエラルキーの無慈悲さを痛感しながらも、それでもしょうがないと頑張る人たちに心を打たれながら「じゃあ俺も」と頑張れない自分に挫折して、とあ[...]

    続きを読む
  • jQueryUiのDatepicker利用時にminDate設定するとバグる件

    題名の通りなんですが、DatepickerでminDate使うとバグります。また後でキャプチャ見て貰いますけど、灰色の部分が、minDateで設定した日付が反復して出るようになるんですね。こういうの気が付かない人がいるかも知れませんが、ChoromeでminDate設定してる人は気にしてみてくだ[...]

    続きを読む

【PHP】DBの内容をcsvとしてダウンロードさせる

megurojuutai
DBのテーブルをPHPを使ってCSVとしてダウンロードさせました。
データの保存をやってないので、ファイル保存する場合は
またちょっとプログラムつけたししないとダメですけど、
何となくCSVをダウンロードさせる流れとかは分かるかもしれません。

ヘッダの設定


ファイルの名前を設定して、
ダウンロード用にcontent-typeをバイナリにします。

DBから取得したデータを整理する


エクセルとかで見る時の為に、
カラムと、内容で分けて横一列で保存する必要があります。
なので、カラムはカラムで保存して内容は内容で一行ずつ保存するのが
僕は望ましいと思われるので、こんな感じで書きました。

カラムが別で取りたいので、カウントをつけて
0の場合にだけ、インデックスだけの配列を作るようにしています。

サニタイズについては以降説明しますが、
内容を行の数分取得したいので、$countを行と見立てて、
こいつをインデックスにして内容だけの配列を作成します。

こうすると、$buffの構造が


[0]
     [0]
     [1]
     [2]
     [3]

みたいになるので、僕は管理し易いと思います。

サニタイズ


SJISで保存したかったので、エンコーディングをSJISに変えてます。
それと改行とかが邪魔なので、空文字にしています。この部分です。

mb_detect_encodingで文字コードを取得して、
mb_convert_encodingこれの第三引数にセットして、
第二引数に変換する文字コードを入れてやるのが良いような気がします。

出力プログラム


さっき入れたデータを結合してます。結合した先に改行入れてます。
内容の方は行が一個ではないので回します。

回せばvalの方に、内容のデータが1行ずつ代入されてくるので、

key 0
val array //このarrayの中に内容の1行が入ってる

こいつをimplodeで結合します。

コード


今回書いたのはこんなコードでした。
それではー。

関連記事

  1. PHPサムネイル
  2. PHPサムネイル
  3. PHPサムネイル

コメントをお待ちしております