1

preg_replaceのÑの値を置き換えようとしています。私はこのコードを持っています:

<?php
$name = 'AVENDAÑO, PAULVIC T.';
$match = preg_replace('/[^A-Z]/','N',$name);

echo '<pre>';
print_r($match);
echo '</pre>';
?>

変数$nameはAVENDAÑO、PAULVIC Tを保持しますが、それでもAVENDAÃ'O、PAULVICTを表示します。

しかし、上記のコードを使用しようとすると、すべての非文字がNに置き換えられます。

正規表現に問題があることを知っていますか、または文字の書式設定に関するこれらの問題を解決するための代替手段を知っている人はいますか?

4

2 に答える 2

2

これを行う最良の方法は、iconv http://php.net/manual/en/function.iconv.phpを使用することです。

echo iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $name);
于 2013-01-10T16:06:03.403 に答える
2

代わりにstr_replaceを使用してください。

<?php
$name = 'AVENDAÑO, PAULVIC T.';
$match = str_replace('Ñ','N',$name);

echo $match;
?>
于 2013-01-10T16:08:28.643 に答える