hnwの日記

2010-08-01から1ヶ月間の記事一覧

PHPのcopy関数がファイルサイズ分のメモリを消費する件の対策

PHP

補足(2010/08/24 15:00):rename関数について言えば、同一ファイルシステム上であればrenameシステムコールを利用するのでこの問題は起こりません。さらに蛇足ですが、ファイルシステムをまたがってrename関数を利用するとコピーしてから削除することになり…

例えばPHPのpreg_replace関数でe修飾子を避ける

PHP

(2015/04/19追記)e修飾子はPHP 5.5からdeprecatedになっています。また、PHP7からは廃止されます。PHPのpreg_replace関数では、e修飾子が利用できます。これはPerlから輸入された機能で、置換後パターンの文字列をPHP文法に従って評価する(evalする)とい…

PHPのPCRE関数での\Q,\EはPerlと同一ではない

PHP

Perl正規表現で利用できる便利なエスケープシーケンスとして、\Qと\Eがあります。これはメタ文字の解釈を止めたり、その解釈を再開したりするものです。「man perlre」には次のような例が出てきます。 /$unquoted\Q$quoted\E$unquoted/ この正規表現は変数$u…

PHPの文字列型は2GB以上の文字列を処理できない

PHP

(2015/6/12追記)PHP7から、64bit環境であれば2GB以上の長さの文字列が扱えるようになります。やったね! PHPの文字列型は、一般には文字列長の制限が無いとされています。PHPマニュアルにも次のように書いてあります。 注意: 文字列が非常に大きくなっても…