作成者別アーカイブ: モリ

[PHP]エクセルで文字化けさせないCSVの作り方

タグ: , , , , | 投稿日: 投稿者:

おはこんばんにちは、いい年してモンハンしちゃってるモリです。

さて、今回はCMSの1機能としてよくあるCSVダウンロード機能に関する記事を書きたいと思います。
PHPで生成したCSVをエンドユーザーがダウンロードしてエクセルで開いたら文字化けしてる!って
事を無くす為のやり方です。

結論から言うとファイルの先頭にBOMを付与する事で文字化けを回避させることが出来ます。
エクセルにUnicodeと識別させるために付与します。
これがあるとエクセルは自動的に判別してくれます。
SIJISに変換する方法もありますが、UTF8のまま文字化け対応させるやり方です。

元データはこんな感じ
blog1

BOMなしのPHPソース

 
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=sample.csv");
$fp = fopen('php://output','w');
$data = array(
		array('項目1','項目2','項目3','項目4'),
		array('データ1','データ2','データ3','データ4'),
		array('データ5','データ6','データ7','データ8'),
		array('データ9','データ10','データ11','データ12')
);
foreach($data as $output){
	fputcsv($fp, $output, ',','"');
}
fclose($fp);

これをエクセルで見てみると見事に文字化け
blog2

さっきのソースのデータ書き込み前にBOMを付与します。

 fwrite($fp, '\xEF\xBB\xBF'); 

BOMありバージョンで見てみるとちゃんと読み込めていますね。
blog4

おまけ:BOMありのPHPソース

header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment; filename=sample.csv");
$fp = fopen('php://output','w');
fwrite($fp, "\xEF\xBB\xBF");
$data = array(
		array('項目1','項目2','項目3','項目4'),
		array('データ1','データ2','データ3','データ4'),
		array('データ5','データ6','データ7','データ8'),
		array('データ9','データ10','データ11','データ12')
);
foreach($data as $output){
	fputcsv($fp, $output, ',','"');
}
fclose($fp);

では。。。


Chromeデベロッパー・ツールを使ってヘッダー情報を確認する

寒くなりましたね!そろそろインフルエンザの季節が到来しますね。

対策にいち早くワクチン打ってもらおうかな~と思っているモリです。

 

今回はWeb開発で調査に活用できるネタとして、Chromeデベロッパー・ツールでヘッダー情報を確認する方法を簡単に紹介します。

 

画面遷移時の通信している詳細情報(HTTPリクエストやレスポンスのヘッダー情報など。。。)を確認する方法です。

まずは対象となる画面上で右クリックして「要素の検証」を押下します。

Chromeデベロッパー・ツールが立ち上がったら「Network」タブを押下して詳細情報を確認できます。

1

 

詳細情報は大きく分けて3つになります。

1.使用されているファイル一覧

2.ファイルに対する各種情報

3.通信の中身の詳細情報

 

 

1.使用されているファイル一覧

 画面で読み込んでいるファイルを一覧表示しています。

 いくつもファイルを読み込んでいる画面では、たくさん表示されているのでファイルの絞り込みをして最小限の表示に切り替えると見やすいです。

2

 

2.ファイルに対する各種情報

 以下の5つの情報の切換えが可能です。

 a.Headers
 b.Preview
 c.Response
 d.Cookies
 e.Timing

 

 Headers情報

  リクエストヘッダーおよびレスポンスヘッダーが確認できます。

3

 

 Preview情報

  ファイルの内容を確認出来ます。

  画像の場合、大きさ・サイズ・ファイルタイプ・URLなどCSSやJSならファイルのソースを確認することが出来ます。

4

 

 Response情報

  レスポンスされた内容を確認出来ます。

5

 

 Cookies情報

  リクエストおよびレスポンス時のクッキー情報が確認出来ます。

6

 

 Timing情報

  画面が表示完了するまでに掛かった時間が確認出来ます。

  要求の送信待機時間やDNSルックアップ・送信時間・待機時間など確認する事でどのリソースが重いのか把握出来ます。

7

 

表示が遅い!やどんな情報を送っているのかなどなど確認する事が出来るのでオススメです。

Network以外にもたくさんの機能があるので、開発や調査に重宝すること間違いなし!

でわでわ。。。


Google検索

タグ: | 投稿日: 投稿者:

どもども、モリです。

 

コーティングしているとき、Google先生に色々聞いて見ることって多々あると思います。

エラーメッセージが出た時だったり環境構築だったりと参考にするサイトに辿り着くまでに

時間が流れ無駄にしてしまった経験が多くあります。

そこで今回はいつものように備忘録がてらGoogle先生への便利な質問作法(笑)を書きたいと思います。

 

検索の仕方はいろいろありますが、今回は実際に使って便利ってやつを抜粋してみます。

Google

 

フレーズ検索

完全一致として検索する時に便利 "文字列" ダブルクォーテーションで囲む
AND検索 複数キーで検索 文字列1 AND 文字列2 半角大文字で!
OR検索 かつで検索 文字列1 OR 文字列2 半角大文字で!
除外検索

特定の文字列を除外

先頭文字列の検索結果から後述の文字列が除外されます。

-文字列

複数:-文字列 -文字列

ハイフンをキーの前に付与する(スペースは空けない)

あいまい検索

エラーメッセージ等検索する時重宝してます。

*文字列

ワイルドカードを付与する

フレーズ検索と組み合わせて環境依存している文字列部分のみ置き換えて検索すれば類似ページにHIT!

ページ内検索 辿り着いたはいいがページ内にないじゃん!が解消されます。 intext:文字列

「intext:」を文字列の先頭に付与

ページタイトルを除外してページ内に記述されているページのみが対象

URL検索 URLを対象に検索 inurl:文字列 「inurl:」を文字列の先頭に付与
関連サイト検索 関連サイトを検索する時便利

related:URL

「related:」をURLの先頭に付与

指定URLに関連したサイトを検索

指定サイト内検索 指定サイト内のみの範囲で検索できるので使えます。 site:URL 文字列 「site:」をURLの先頭に付与してスペースを開けてキー文字列

 

これらを組み合わせて検索する事で大概のものは賄えるかと・・・

 

余談ですが、Google先生のおふざけ検索も色々あるみたいで試してみるとおもしろいですよ!

・くるりんぱ

 「do a barrel roll」で検索

・Google先生崩壊

 こちらはGoogle先生を崩壊させた状態で検索できるサイトです。

 このサイトは他にも提供しているので暇つぶしにどうぞ

 なかなかおもしろい(笑

 http://mrdoob.com/projects/chromeexperiments/google-gravity/

 

でわでわ。。。


[jQuery]CSVファイルを配列にする

カテゴリー: jQuery | タグ: , , , , | 投稿日: | 投稿者:

最近、怖い話を聞きながら寝るのにハマってるモリです。

今回、紹介するのはAjaxで読み込んだCSVのデータを配列に変換する方法です。

用意したデータは以下。

No 品種 原産国 補足

1

ブルーマウンテン ジャマイカ バランス型
2 キリマンジャロ タンザニア 酸味とコク
3 マンデリン インドネシア コクと苦み
4 コロンビア コロンビア 香りと角のないコク

 

用意するライブラリは本家jqueryと今回は「simple_csv」を使用します。

使い方はAjaxで読み込んだデータをsimple_csvに渡すだけ!

配列で返してくれます。

サンプルソース:

&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	$.ajax({&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	  url:&#39;sample.csv&#39;,&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	  beforeSend:function(xhr){&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	  xhr.overrideMimeType(&amp;amp;amp;amp;quot;text/html;charset=UTF-8&amp;amp;amp;amp;quot;);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	  }&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	}).done(function (csv_data, status, error) {&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	  var data = $.simple_csv(csv_data);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	  console.dir(data);&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	});&amp;amp;lt;br /&amp;amp;gt;&amp;lt;br /&amp;gt;&lt;br /&gt;<br />
	

beforeSendでCSVの文字コードをUTF-8にしてます。

simple_csv

でわ。。。


開封

Raspberry Pi 2 Model B OSインストールまで

タグ: | 投稿日: 投稿者:

こんにちは5月病にならなくてホっとしているモリです。

 

ラズベリーパイを手に入れる機会があったので紹介します。

 

私はラズベリーパイ自体知らなかったので、ちょうどいい!って感じでとりあえず開封してインストールしてみました。

開封

まぁ、最近流行っているので、何が出来るかはグーグル先生に聞くと面白そうな記事が山ほど出てくるので割愛!

私の環境はWindows環境なので今回紹介する内容はWindows向けです。

 

まずは、用意するもの。。。

1.ラズベリーパイ本体

2.MicroSDカード

  4GB以上を用意しましょう。

3.給電用USBケーブル

  本体側はMicroUSBの「micro-b」なので、スマフォを利用されているなら流用できます。

4.電源

  電源はスマフォ用USBアダプタや本体入力側がMicroUSBであればOKです。

  ちなみに給電は0.9Aで4.5W~5Wで動作させることが推奨されています。

  上限は5Vの電圧で1.5A~2Aとあるので、電源効率や周辺機器接続の損失を考慮して1.2A程度の供給で動かすのが無難な気がします。

5.OSイメージファイル

 OSのイメージファイルは公式サイトで提供されているので、こちらからダウンロードして下さい。

 OSはUBUNTUやRASPBIAN等、複数提供されています。

 お好みのOSを選んで下さい。

tmp1

 今回私が使用したのは「RASPBIAN」を使用しました。

6.MicroSDカードへのcopyツール

 ラズベリーパイはMicroSDカードにOSをインストールして動作させる為、SDカードにOSをインストールする必要があります。

 今回私が使用したのは「DD for Windows」を使用しました。

 ダウンロードはこちらから。。。

 他にもツールがあるので、こちらは好みで用意して下さい。

 

ここから『Raspbian』のインストール。。。

ZIPをダウンロードして解凍すると『yyyy-mm-dd-raspbian-wheezy.img』が展開されます。

展開されたイメージファイルをSDカードにインストールします。

「6.MicroSDカードへのcopyツール」で紹介したツールを起動しましょう。

注意)管理者権限で起動する事!

tmp2

 

こちらがツールの画面になります。

tmp3

1.copy先のディスクを選択する

 「ディスク選択」ボタンでディスクを選択します。

 SDカードが正常に認識している事を確認の上、選択をして下さい。

2.インストールするOSイメージファイルを選択する

 ダウンロードし展開した『yyyy-mm-dd-raspbian-wheezy.img』を選択して下さい。

3.ディスクに対してインストールする

 「<<書込<<」ボタンでインストールが開始します。

 この際に、「ディスクサイズ」や「書込み」の確認ダイアログが表示されますが「OK」で問題ありません。

 

これで、インストールは完了です。

お好みのカスタマイズを楽しんでください!でわでわ。。。


エクセル

タグ: | 投稿日: 投稿者:
花粉なのか黄砂なのか。。。最近洗車がおっくうになっております、モリです。
今回は仕事でエクセルのドキュメントを作成する時に便利だったけど、頻繁には使わない関数について
IF関数やVLOOKUP関数等は結構頻繁に使用する関数ではないですが、作業が楽になった関数だなぁ~と思ったのを列挙します。

 

■時間の切り捨て
 勤怠計算に使用してお世話になっています。
 FLOOR([入力セル], [切り捨てする時間])

 
■時間の切り上げ
 勤怠計算に使用してお世話になっています。
 CEILING([入力セル], [切り上げする時間])
 
■ふり仮名
 基本的な読み方はこれでOK
 PHONETIC([文字列])
 
全角を半角
 地味に使えます。
 ASC([文字列])
 ちなみに英字のみはLOWER関数が使えます。
 
■セルの書式変更不要の年月日変換
 一々書式設定をする必要がない!
 DATESTRING([日時])
 
■ 全ての条件に一致
 IF文の嵐を回避出来ます。
 SUMPRODUCT((条件1)*(条件2))
 
■条件付き合計
 日付や種別などの個別計算に使用しています。
 SUMIF([範囲], [検索条件], [合計範囲])
 
■複数条件付き合計
 区分や種別等複数ある場合、ものすごく重宝します。
 DSUM([データベース], [フィールド], [検索条件])
 
でわでわ

vim カスタマイズ

タグ: , , | 投稿日: 投稿者:

こんにちは最近、寒波続きで寒いので帰宅途中でコーンポタージュを飲むのが日課になっているモリです。

今回はよく使用しているvimを自分仕様にカスタマイズしているので紹介しようと思います。

紹介する内容はLinux系のOSです。

Windows系ですとやり方が異なるので注意して下さい。

私はカラースキーマ(コードの色分け)と入力、検索の設定をしています。

簡単にできるので、是非してみては如何でしょうか。

注意点として、共有ユーザに対して適用しないようにしましょう~!

やる事

1.vim設定

 a.まずはサーバにログインして、自身のホームディレクトリへ移動します。

 b.「.vimrc」ファイルの作成

  このファイルが設定ファイルになります。

  作成は「vim .vimrc」で作成します。

  c.好みの設定を記述

  基本的に[set]コマンドにて設定していきます。

     設定する内容はたくさんあるので割愛させてもらいますが(汗

  私の設定は以下のようなオーソドックスな感じです。

" ##### 表示設定 #####
" 行番号を表示する
set number
" 編集中のファイル名を表示
set title
" 括弧入力時の対応する括弧を表示
set showmatch
" インデントをスペース4つ分に設定
set tabstop=4
" オートインデント
set smartindent

" ##### カラースキーマ設定 #####
 colorscheme molokai
" コードの色分け
syntax on

" ##### バックスペース設定 #####
" eol    => 行頭で[Backspace]を押したときに行の連結
" indent => オートインデントモードのインデントも削除
set backspace=start,eol,indent

" ##### 入力補完 #####
" コマンドラインモードで[Tab]を押すと、適切な文字を補完したり、補完候補を一覧表示
set wildmenu wildmode=list:full

" ##### 検索設定 #####
" 大文字/小文字の区別なく検索する
set ignorecase
" 検索文字列に大文字が含まれている場合は区別して検索する
set smartcase
" 検索時に最後まで行ったら最初に戻る"
set wrapscan

2.カラースキーマ

 a.カラースキームのダウンロード

  こちらは「vim カラースキーム」等で検索するといっぱい出てきます。

  好みのカラースキームが見つかったら「xxx.vim」ファイルをGETします。

 b.ファイルの設置

  「xxx.vim」ファイルの設置場所はホームディレクトリの「.vim/colors」ディレクトリ配下に置いて終了

 c.適用

  適用は先ほどの「.vimrc」ファイルに記述します。

  ファイル名は拡張子を省いて記載します。

" ##### カラースキーマ設定 #####
 colorscheme [ファイル名]
" コードの色分け
syntax on

★適用前

a

★適用後

b

 

これだけです。

でわでわ!よいvimライフを!!


コマンド履歴

タグ: , , , , | 投稿日: 投稿者:

こんにちは、モリです。

忘れっぽい自分の為に、またまた備忘録を書いていきます。

今回はLinuxコマンドで使用する「コマンド履歴」です。

■一覧

まず単純にコマンド履歴を見るなら[history]コマンドで一覧表示。

■直近

直近なら[↑][↓]でhistoryを遡るまたは戻る

■検索

[ctrl] + [r]

上記のコマンドで検索。

さらに使用したいコマンドをある程度入力して[ctrl] + [r] すると直近の類似候補を表示。

遡りすぎて目的のコマンドを過ぎてしまった場合[ctrl] + [s]で戻ることが可能

ただ、デフォルトの設定では戻るコマンド[ctrl] + [s]が画面のロックに割り当てられている為、動かない。

解除するには以下のコマンドで外してやれば可能になる。

[stty stop undef]

解除出来たか確認するには[ssty -a]で[stop]に割り当てられている値が[undef]であることを確認すればOK。

ちなみに、初期値は[^S]なので戻したいと思ったら再度割り当てればOK

頻繁に使用する人は結構重宝するかも。

 

 


任意の名前でGitコミット

タグ: , , | 投稿日: 投稿者:

こんにちはモリです。

今年の暑い夏もお盆まで!というニュースを見て一安心しました。。。

今回も備忘録として書いていきます。

今回はGitのコミットをする際に任意の名前にてコミットを行うやり方を紹介します。

commit の引数に[–author]を指定すると任意のユーザー名を指定することで可能になります。

git commit --author='mori <mori@fairway-corp.co.jp>' -m 'コメントを入力'

19

これで、いちいちconfigを編集しないで済みます。

お試しあれ。


WordPressデータのXMLインポート

タグ: , , | 投稿日: 投稿者:

こんにちは、モリです。

暑がりなので夏が近くなるにつれて、嫌になってきます。。。。

早く夏過ぎないかなぁ~~~(笑

WordPressのインポート機能を使用した際の備忘録です。

ちなみにXMLでインポートで移行しても設定変更しないといけない設定があるんですね~

  • 一般設定
  • 投稿設定
  • 表示設定
  • ディスカッション
  • メディア
  • パーマリンク設定
  • プラグインの新規インストール&設定

ブログ1

サーバ移転等の場合、テーマ情報などはFTPでそのままテーマ配下に配置しないといけません。

    • テーマ

/wp-content/themes/テーマ名/

    • 画像

/wp-content/uploads/

でわ!