2012-06-01 25 views
3

人類可讀,這意味着字符串是一個真正的單詞。這實質上是一種表單驗證。理想情況下,我想測試表單響應的「紋理」,以確定實際用戶是否填寫了表單,而不是查找表單漏洞的用戶。可能在發佈的數據上使用字典查找,然後給出返回的「真實詞彙」的閾值。有沒有辦法讓PHP(或jQuery)檢查一個字符串是否可以被人閱讀?

我沒有看到PHP文檔中的任何內容,並且Google機器不提供任何東西,至少這是特定的。我懷疑有人寫過一個PHP類,甚至是一個可以做到這一點的jQuery插件。像這樣的東西:

$string = "laiqbqi"; 

is_this_string_human_readable($string); 

任何想法?

+2

相關http://stackoverflow.com/questions/6297991/is-there-any-way-to-detect-strings-like-putjbtghguhjjjanika和https://github.com/buggedcom/Gibberish-Detector-PHP。一些其他很酷的技術概述http://stackoverflow.com/a/4674100/46675 –

+3

定義人類可讀的。你的意思是發音嗎?還是真的話?後者通過字典查找最有效。發音檢查涉及更多一點。 – Unsigned

+0

還有這個:http://stackoverflow.com/questions/2229054/php-dictionary-class-or-alternative – karim79

回答

5

這可以使用稱爲Markov Chains的東西來完成。

基本上,他們通過給定語言(英語,法語,俄語等)中的大量文本進行閱讀並確定一個字符在另一個字符之後的概率。

例如在「z」之後的「q」具有比諸如「a」的元音低得多的概率。

在較低的級別,這實際上是作爲狀態機實現的。

根據Mike的評論,PHP的這個版本可以找到here

對於風味,馬爾可夫鏈上有趣的the Daily WTF article

+0

衚衕探測器!正是我在找什麼。謝謝! –

相關問題