[PHP-dev 1555] mbflが扱える文字列の制限

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

[PHP-dev 1555] mbflが扱える文字列の制限

Yasuo Ohgaki
大垣です。

自分もここをあまり見ていないのですが、一応投稿します。

ブログに文字列型の制限部分を書きました。
http://blog.ohgaki.net/php-limits

PHP7.0以上で64ビットOSの場合

最大長は符号無し64ビット整数の最大値と同じ。最大2^64(実質的には無制限)
た だし、mbstringが取り扱える最大文字列長は2^32に制限される(libmbflの文字列長定義にunsigned
intが利用されているため)しかし、mbstringが利用するlibmbflのAPIはパラメータにint型(符号付き整数)を利用している。この
為、4GBまでの文字列が保存できるが、文字列操作は2GBまでしかできない場合がある。

libmbflが文字列を保存する構造体はuintで長さを保存し、APIはintを利用しています。PHP
7より古いPHPはこれで十分でしたが、これらをsize_tに変更する必要があります。。。

--
Yasuo Ohgaki
[hidden email]
_______________________________________________
PHP-dev mailing list
[hidden email]
http://ml.php.gr.jp/mailman/listinfo/php-dev
Loading...