Php 是否有任何选项可以检查字符串中的英语百分比?

Php 是否有任何选项可以检查字符串中的英语百分比?,php,Php,我创建了一个联系人表单,但用户用另一种语言(我的语言是希伯来语)发送我的垃圾邮件内容 我试图强制发送英文文本,使其占总字符串的百分比超过X%(例如10%)。 这是我的密码: $sent_text = 'שלום, שמי הוא דין. Hello'; $check = similar_text($sent_text, '[A-Za-z]', $percent); echo 'percent of english is: ' . $check($percent); 我希望输出为20%,但没有

我创建了一个联系人表单,但用户用另一种语言(我的语言是希伯来语)发送我的垃圾邮件内容

我试图强制发送英文文本,使其占总字符串的百分比超过X%(例如10%)。 这是我的密码:

$sent_text = 'שלום, שמי הוא דין. Hello';
$check = similar_text($sent_text, '[A-Za-z]', $percent);
echo 'percent of english is: ' . $check($percent);

我希望输出为20%,但没有任何返回。

您无法通过使用字母表来判断文本是否为英语。最好的方法可能是使用英语词典文件,看看字典中是否有完整的单词

如果您只想确定字符串
$sent\u text
中包含字母A-Z的百分比(不区分大小写):


如果您试图计算英文字符:

$sent_text = 'שלום, שמי הוא דין. Hello';
$english_text = preg_replace('/[^a-zA-Z]/', '', $sent_text);
$check = similar_text($sent_text, $english_text, $percent);
echo 'percent of english is: ' . $percent;
请看以下与此相关的帖子


传递给
similor_text()
的第二个字符串是
'[A-Za-z]'
,但它看起来像一个regexp。如果您试图查看字符串中有多少个英文字母,则需要使用类似于
preg\u match()
。哦,我忘了使用preg函数。你帮了我这么多,谢谢!仅供参考,这不是“英语”,英语是一种语言,不是字母表。拉丁字符几乎在所有欧洲语言中都使用。是的,但我们需要知道OP想要实现什么,以及代码中的问题是什么。这计算字节,而不是字符。
$sent_text = 'שלום, שמי הוא דין. Hello';
$english_text = preg_replace('/[^a-zA-Z]/', '', $sent_text);
$check = similar_text($sent_text, $english_text, $percent);
echo 'percent of english is: ' . $percent;