2010-06-25 91 views
1

檢查輸入的最佳方法是什麼,如果它包含來自其他語言的任何字符。 (英語除外)PHP輸入過濾:只有英文字母

+1

正是什麼你做意味着來自其他語言的字符?你想排除é,例如,雖然經常掉在英語單詞中,但總是用英語。 – 2010-06-25 13:19:07

+3

這個問題似乎有點幼稚 – 2010-06-25 13:20:47

+2

「你想排除é例如哪些經常掉在英語中的英語一直用英語」 是的 – TheNone 2010-06-25 13:21:53

回答

3
if (preg_match("/[^\x00-\x7F]/",$string)) { 
    // $string contains at least 
} else { 
    // $string doesn't contain any foreign characters 
} 

這將檢查ASCII碼高於127的任何字符,因爲如果它高一些,它不在英文字母表中。 7位Ascii代碼包含每個英文字符。

Ascii Table http://www.cs.utk.edu/~pham/ascii_table.jpg source

0
$input = 'abcабв'; 
$out = array(); 
preg_match_all(
    "|[a-zA-Z]?|", 
    $input, 
    $out 
); 

$ out將包含所有非拉丁字符(абв)。

+0

以及特殊字符如'.','()','[]'還有更多可以在字符串中使用的外部字符串嗎? – jigfox 2010-06-25 13:21:17

+0

是的,你是對的,那隻適用於單個單詞。 – 2010-06-25 13:23:52

2

如果這

preg_match("/[^\x00-\x7F]/",$string) 

不起作用(你沒有結束符 '/' 中)那就試試這個

preg_match('/[^\x00-\x7F]/',$string)