[PHP-users 10420] コントロールコードを除去するには
Osamu Shigematsu
php-users@php.gr.jp
Mon, 30 Sep 2002 12:39:28 +0900
重松です。こんにちは。
FORM などで渡されてきたデータにコントロールコードが含まれる場合、
それらを取り除きたいと考えています。
そこで、以下のようなスクリプトを書き、実行してみたのですが、
期待の動作になりません。
テスト環境は、
PHP Version 4.2.0
Darwin jhfacpc17.jhfacc 5.4 Darwin Kernel Version 5.4: Wed Apr 10 09:27:47
PDT 2002;
root:xnu/xnu-201.19.3.obj~1/RELEASE_PPC Power Macintosh powerpc
'./configure' '--enable-mbstring' '--enable-mbregex'
'--enable-mbstr-enc-trans'
'--enable-trans-sid' '--enable-force-cgi-redirect' '--enable-ftp'
です。
正規表現の書式に何か誤りがあるのではないかと思うのですが、
文字列クラスの書式はこれで正しいのでしょうか?
また、POSIX 互換のもの (ereg) は、バイナリセーフではないので、
Perl 互換のものを使うのが望ましいと記述がありますが、
Ruby 互換のもの (mb_ereg) はバイナリセーフなのでしょうか?
アドバイスをいただければ幸いです。
<?php
$a = "Hello, \nWorld!";
$a = mb_ereg_replace('[:cntrl:]','_',$a);
print $a;
?>
[localhost:~] shige% php -q regex | hexdump -C
00000000 48 65 5f 5f 6f 2c 20 0a 57 6f 5f 5f 64 21 |He__o, .Wo__d!
|
0000000e
--
Osamu Shigematsu
mailto:shige@ravi.ne.jp