PHP のstrlen()
関数は UTF-8 に対応していないため、 の各使用法を UTF-8 対応の対応するものと交換したいと思いますstrlen()
: mb_strlen()
. ただし、mb_strlen()
追加の引数が必要です。
$length = strlen($someString);
$length = mb_strlen($someString, 'UTF-8');
2 番目の引数がなければ、単純な Perl 正規表現がスワップを処理します。
$ find . -name '*' -print0 | xargs -0 perl -pi -e 's/strlen/mb_strlen/g'
キャプチャ グループと後方参照を使用してみましたが、VIM スタイルの構文は (最近の Ubuntu では) サポートしていないか、理解できません。これについていくつかのバリエーションを試しましたが、成功しませんでした:
$ find . -name '*' -print0 | xargs -0 perl -pi -e 's/strlen\((\.*)\)/mb_strlen\($1, "UTF-8"\)/g'
trim()
さらに、内部などの関数がある可能性があるstrlen()
ため、これを貪欲にする必要がありますが、貪欲な演算子がどこに行くべきか正確にはわかりません。この正規表現はどのように記述すればよいですか?