我想通知用戶什麼字符不符合正則表達式。 但是,當我嘗試將其打印到屏幕上時,它會呈現爲帶有問號的三角形。PHP preg_match,通知用戶哪個字符不被允許
這裏是我的代碼...
$matches = array();
$pattern = '"[^@?0¡Pp£_!1AQaq\$F\"2RBbr3¥G#\s\.\,\:\'3CScsè?¤4DTdtéO%5EUeuù?&6FVfvì?7GWgwòS\(8HXhxÇT\)9IYiy?\*:JZjzØ\+\;KÄkäøÆ\,\<LÖlöæ\-\=MÑmñÅ\.\>NÜnüåÉ\/\?O§oà\{\}]"';
$text = "Flight Vol {FN} vol est retardé d'au moins 1 heure, s'il vous plaît consulter les écrans de l'aéroport pour les mises à jour. Service à la clientèle de AIRLINE";
if(preg_match($pattern, $text, $matches)){
$output = '<p>This Text contains invalid character(s) ';
$output .= '<span style="color:#000; border-bottom:1px dashed #F33; padding:0px 5px 0px 5px; "><strong>'.implode(" ",$matches).'</strong></span>';
$output .= ' is not allowed.</p>';
$output .= "<p><strong>".$text."</strong></p><br />";
print $output;
}
我想這是值得做的拉丁編碼或UTF-8,但我在網站的其餘部分使用UTF-8。在$ matches數組內部渲染字符的最佳方法是什麼,以便用戶可以更正它們的文本?
謝謝。
什麼樣的模式是什麼?換言之,你認爲什麼樣的角色*有效*?只有A-Z? – deceze 2012-07-19 11:47:02
這是GSM字符集, [鏈接](http://www.csoft.co.uk/sms/character_sets/gsm.htm) – davesherlock 2012-07-19 11:49:29
什麼編碼是'$ text'和你的源代碼? – deceze 2012-07-19 11:51:00