未分類

PHPでCSVの読み込みにマルチバイトを使用する

投稿日:

csvを読み込もうとするとどうしてもマルチバイトが文字化けしてしまいました。

array(
	(int) 0 => 'XXXXXXXXX',
	(int) 1 => 'eストメッセージ http://yahoo.co.jp'
)

このようにテストがeストとなってしまいます。

mbstringのインストール

PHPではマルチバイトを使用するにはmbstinrgをインストールする必要があります。

[root@centos app]# yum install php-mbstring

php.iniの修正

以下を確認します。

[root@centos app]# vim /etc/php.ini
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = Off
mbstring.detect_order = auto

CSVファイルの読み込みには更に注意が必用

setlocaleを入れるfgetcsvの前に入れましょう。

$tmp = fopen($uploadfile, "r");
setlocale(LC_ALL, 'ja_JP');
while ($csv = fgetcsv($tmp)) {
・・・

Gooleアドセンス用336

Gooleアドセンス用336

-未分類
-

執筆者:

関連記事

CakePHP Appcontrollerで設定した変数を別のcontrollerで参照する

AppControllerで $this->set(‘custcode’,$cust_code); として企業コードを$custcodeにセットしたとします。 Viewから参照するには以下のよう …

CakePHPのlayoutを指定する

ログイン画面ではメニューが不要であったりと、 レイアウトを変更したい場合はコントローラーのアクションで以下のように指定します。 View/Layout/配下に作成したレイアウトを指定すればよいのですが …

PHPのダブルクォーテーションとシングルクォーテーション

PHPではどちらでも利用できます。 ダブルクォーテーション => 文字列中の変数を展開する シングルクォーテーション => 文字列中の変数を展開しない という違いがあるようですが、あまり意 …

CakePHPのインストール時によくあるエラー

INDEX1 タイムゾーンの設定2 tmpの書き込み権限3 セキュリティ4 Mod_ReWrite5 databaseファイル名6 Debug_kidのインストール タイムゾーンの設定 Warning …

PHP execで別exeが実行できない

他のサイトでも色々紹介されていますので、あまり紹介されていないパターンのご紹介です。 どうしても実行できないときは、まずexecを呼び出しているときのカレントワーキングディレクトリを確認してください。 …