INFINITY BLUE
msgbartop
ご訪問ありがとうございます。『INFINITY BLUE』は、WEB+DB開発の情報や仕事の実績などを紹介しています。
msgbarbottom

2008年02月03日 00時12分(日) 備忘録: PHP: fgetcsv()関数を使用する際の注意

内部文字コードをUTF-8に設定し、CSV処理のプログラムを開発していたのですが、fgetcsv()関数で半角カタカナが取得できない現象ではまってしまいました。
対応策を備忘録として残しておきます。

PHPマニュアルには以下の記載があります。
via PHP Manual

getcsv — ファイルポインタから行を取得し、CSVフィールドを処理する

注意: この関数はロケール設定を考慮します。もし LANG が例えば en_US.UTF-8 の場合、 ファイル中の 1 バイトエンコーディングは間違って読み込まれます。

なので、プログラム内でロケールの設定をします。
ロケールの設定はsetlocale()関数で行うことができます。
via PHP Manual

setlocale — ロケール情報を設定する

CSV処理の前に下記のようにロケールを日本語の設定にすると、fgetcsv()関数が正常動作できます。

//setlocale -- ロケール情報をセットする
setlocale(LC_ALL, 'ja_JP.UTF-8');
// CSV処理
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
……

追記[2008.02.06]:
最初の公開時
setlocale(LC_ALL, 'ja_JP.');
としていましたが

setlocale(LC_ALL, 'ja_JP.UTF-8');

の方がより正しいと判明しましたので訂正します。

PEAR―PHPライブラリPHPライブラリコレクション

2008年01月29日 01時50分(火) ERGOSOFT|エルゴソフトがパッケージソフト事業を終了

via: ERGOSOFT|エルゴソフト
ERGOSOFT

MacOSの日本語環境アプリケーションを提供していていたERGOSOFTがパッケージソフト事業を終了するそうです。
残念です。

ここ最近Appleは好調ですが、それを取り巻くサードパーティは依然厳しいのでしょうか……

2008年01月27日 01時21分(日) 「さくらのレンタルサーバ」スタンダード・プレミアムサービス、2008年1月29日より PHP5 を正式に提供

2008/01/22にさくらインターネット株式会社から「さくらのレンタルサーバ」スタンダード・プレミアム PHP5 の提供」のメールが届きました。

2008年1月29日より PHP5 を正式に提供とのこと。

PHP4→PHP5移行ガイド いまこそPHP資産をマイグレーション
<pre class=

(PHP徹底攻略シリーズ) (PHP徹底攻略シリーズ)" />

2008年01月27日 01時10分(日) CakePHPでCSVファイルをダウンロードさせたいときの作法 | IDEA*IDEA

IDEA*IDEA さんにCakePHPでCSVファイルをダウンロードさせたいときの作法 | IDEA*IDEA という記事が掲載されていました。

The Bakery! だと

という別のアプローチでのCSV出力方法が投稿されています。

デバッグ情報の出力設定をしているとデバッグ情報も出力されてしまうので、CSV出力の時だけオフにするようにコントローラに以下の記述をすると良いでしょう。

Configure::write('debug', '0');

CakePHPガイドブック
Fast CakePHP (LLフレームワークBOOKS # 4)

2008年01月19日 21時36分(土) MySQL AB :: Sun to Acquire MySQL

via
MySQL AB :: Sun to Acquire MySQL
Sun Microsystems Announces Agreement to Acquire MySQL, Developer of the World’s Most Popular Open Source Database

2008/01/17 2008/01/16 Sun MicrosystemsMySQL ABを買収(正しくは買収の最終合意)というニュースが世界中を駆けめぐりました。

MySQLのメーリングリスト(via [mysql 14348] Re: Sun Microsystemsに買収されたようです。)によると、日本のMySQL ABの中の人たちも「プレスリリースのタイミングでこの事実を知」ったそうです。
メーリングリストの表題に”RE:”とありますが、実は最初に一方を入れたのはMySQL ABとは関係ない方でした。

このメールが流れて以降、2008/01/19現在誰もメーリングリストを使っていません……

実践ハイパフォーマンスMySQL詳解 MySQL

2008年01月12日 17時42分(土) CakePHPオフィシャルサイト、リニューアル

CakePHPオフィシャルサイト
CakePHPオフィシャルサイトがリニューアルされていたのですね。

CakePHP のおいしい食べ方さんのCakePHP1.2ベータ+サイトリニューアルで知りました。

ブログThe Bekary::New Year, New Betaを紹介したとき気付かないと、自分……

2008年01月09日 23時55分(水) 実績: notrax EBONY PAGES

notrax EBONY PAGES

ヒップホップ系音楽情報サイトnotrax様のEBONY PAGESのシステム開発を担当しました。

関係者の皆様、お疲れ様でした。

2008年01月07日 16時03分(月) PHP 4.4.8 Released

2008/01/03にPHP4.4.8リリースされました。

via PHP公式サイト

PHP 4.4.8 Released
[03-Jan-2008]

The PHP development team would like to announce the immediate availability of PHP 4.4.8. It continues to improve the security and the stability of the 4.4 branch and all users are strongly encouraged to upgrade to it as soon as possible. This release wraps up all the outstanding patches for the PHP 4.4 series, and is therefore the last normal PHP 4.4 release. If necessary, releases to address security issues could be made until 2008-08-08.

Security Enhancements and Fixes in PHP 4.4.8:

* Improved fix for MOPB-02-2007.
* Fixed an integer overflow inside chunk_split(). Identified by Gerhard Wagner.
* Fixed integer overlow in str


spn().
* Fixed regression in glob when open_basedir is on introduced by #41655 fix.
* Fixed money_format() not to accept multiple %i or %n tokens.
* Addded “max_input_nesting_level” php.ini option to limit nesting level of input variables. Fix for MOPB-03-2007.
* Fixed INFILE LOCAL option handling with MySQL – now not allowed when open_basedir or safe_mode is active.
* Fixed session.save_path and error_log values to be checked against open_basedir and safe_mode (CVE-2007-3378).

For a full list of changes in PHP 4.4.8, see the ChangeLog.

Historical PHP 4 Stable: 4.4.8
ChangeLog

2008年01月04日 23時36分(金) 備忘録: CakePHP 重複チェック対応

訊かれたので、忘れないようにメモ。

CakePHP1.1系では、重複チェックは自分で作り込む必要があります。

参考になる情報:
hetimaの日記::CakePHP の重複チェックをクールに決める
→hetimaさんが、1.2系バリデーションを1.1系に組み込んで重複チェックをする方法を掲載しています。

The Bekary::Checking for duplicate records (unique record)
→hetimaさんが参考にされたThe Bekaryのページ

CakePHP Users in Japan::モデルの重複チェック
CakePHP Users in Japanにも投稿がありますね。

2008年01月03日 12時51分(木) CakePHP: Year, New Beta

The Bekary::New Year, New Beta

新年早々CakePHPのニューリビジョンがリリースされました。

Beta: 1.2.0.6311 http://cakeforge.org/frs/?group_id=23&release_id=372
1.2.0.6311 Change log: https://trac.cakephp.org/wiki/changelog/1.2.x.x

Stable: 1.1.19.6305 http://cakeforge.org/frs/?group_id=23&release_id=371
1.1.19.6305 Change log: https://trac.cakephp.org/wiki/changelog/1.1.x.x

追記[2008/01/04]:
重要なことを書き忘れました。
バージョン1.2系はベータ版になりました!!

CakePHPガイドブック
Fast CakePHP
PHPによるJavaScriptを書かないAjax