2009-06-01から1ヶ月間の記事一覧

mb_check_encoding() の内部処理

参考までに、mb_check_encoding() が内部で何をしているかについて書いておきます。 mb_check_encoding() は mb_convert_encoding() で第2引数と第3引数に同じ文字コードを指定した場合と同じ処理い、元の文字列と、変換後の文字列が同じかどうかで TRUE/FAL…

mb_detect_encoding() は文字コードの妥当性検証として使用できるか(その2)

前回(mb_detect_encoding() は文字コード判定として使用できるか(その1))の続きです。 mb_check_encoding() と mb_detect_encoding() を正規表現として表わして比較してみました。各文字コードごとにまとめます。調査した PHP のバージョンは、5.2.9 で、前…

mb_detect_encoding() は文字コード判定として使用できるか(その1)

最近、mb_detect_encoding() について調べていたので、そのメモです。mb_detect_encoding() は文字コード検出を行う関数です(mb_detect_encoding() - PHP マニュアル)。 結論としては、以下の問題があるため、mb_detect_encoding() を文字コード判定には向い…

ファイルの排他処理

PHP

以下の文で誤解を招くような表現がありましたので、修正しました(2009.06.15)。 スクリプトで変数名に間違いがありましたので、修正しました(2009.09.27)。3年くらい前にテストで書いた、カウンタの処理スクリプトです。2種類書いていたので掲載してみます。…

stream_set_write_buffer() を実行しても効果がない

PHP

PHPのfgetcsvやfputcsvでファイルを扱う時の排他処理(donkのPHP日記)を読んで、昔 stream_set_write_buffer() について調べていたのを思い出しました。stream_set_write_buffer() は、「指定されたストリームのファイルバッファリングを有効にする」という関…

UTF-16(BOM 付き Little Endian) を mb_convert_encoding() で変換すると文字列が壊れる

前の項目からの続きです。 基本的に、PHP 5.2 1 以降(正確には 5.2.8 以降)では、mb_check_encoding() が false を返す場合、以下も false を返します。

mb_check_encoding() は UTF-16(BOM 付き Little Endian) を正しく検証できない

確認した PHP のバージョンは PHP 5.2.9 です。

第43回 PHP 勉強会@関東に参加してきました

今ごろな気がしますが、5/29(金)に開催された第43回 PHP 勉強会@関東に参加してきました。会場を提供してくださったノッキング様、どうもありがとうございました。勉強会の内容は他に方が詳しく書いておられますので、そちらを参考にしてください。勉強会の…