2013-01-10 63 views
0

蔭試圖取代n的值在的preg_replace .. 我有這樣的代碼:的preg_replace n,其中正確的字符

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

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

雖然變量$名稱持有AVENDAÑO,PAULVIC T.它仍然顯示AVENDAÃ'O ,PAULVIC T.

但是當我嘗試它上面替換所有非字符N.使用的代碼

我知道有什麼毛病我的正則表達式或有沒有人知道任何替代方案來解決這些問題有關的字符格式化?

謝謝

回答

1

使用str_replace函數來代替。

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

echo $match; 
?> 
+0

您是否認爲仍然有辦法在屏幕上正確顯示?假設我想str_replace('Ñ','Ñ',$ name); – Vainglory07

+0

如果這在網頁中,請檢查使用的代碼頁是否正確。 UTF-8可能是你想要使用的一個:「'應該把它整理出來。如果它在shell會話中,請檢查那裏的代碼頁。 – DaveyBoy

1

要做到這一點,最好的辦法是使用iconvhttp://php.net/manual/en/function.iconv.php

echo iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $name); 
+0

這個結果AVENDA〜NO,PAULVIC T. – Vainglory07

+0

不太清楚第一/第二PARAMS應該是什麼,請查看PHP文檔提供更好的資料,我很少使用這個功能,但它是最好用的,因爲您需要爲每個特殊字符編寫幾百str_replace():) –