PHP的similar_text()和in_array()不能正常工作
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP的similar_text()和in_array()不能正常工作,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1885字,纯文字阅读大概需要3分钟。
内容图文
![PHP的similar_text()和in_array()不能正常工作](/upload/InfoBanner/zyjiaocheng/785/881cd81daa604c799e66fda44ee4dbfc.jpg)
我正在尝试使用similar_text()和in_array()在PHP中创建一个简单的拼写检查和建议程序.
我有一个文本文件dictionary.txt,这是英语中的大多数单词.
首先,我将文本文件中的所有单词分别放在一个新行中.然后在用户输入和提交时,我使用in_array()检查他们输入的单词是否在数组中.如果是,那么他们拼写正确.
如果不是,那么我使用similar_text()来查找数组中接近拼写错误的单词的单词.
我遇到了两个我无法解决的问题,我相信我正在根据PHP文档正确使用in_array()和similar_text().
第一个问题是,当用户键入并提交文本文件中的单词并且也应该在数组中时,else会触发并且不应该发生.因为它在文本文件中,所以它应该在数组中,并且in_array()应该评估为true.
第二个问题是我得到一个错误,即我没有定义通过similar_text()存储两个单词之间相似性百分比的变量.
我正在使用它,similar_text(),就像在文档注释示例中一样;事实上,我在每次比较之前重置和重新定义$percentageSimilarity.为什么我会收到未定义的错误?
这是我的代码:
<?php
function addTo($line){
return $line;
}
$words = array_map('addTo', file('dictionary.txt'));
if(isset($_GET['checkSpelling'])){
$input = (string)$_GET['checkSpelling'];
$suggestions = array();
if(in_array($input, $words)){
echo "you spelled the word right!";
}
else{
foreach($words as $word){
$percentageSimilarity=0.0;
similar_text($input, $word, $percentageSimilarity);
if($percentageSimilarity>=95){
array_push($suggestions, $word);
}
}
echo "Looks like you spelled that wrong. Here are some suggestions: \n";
foreach($suggestions as $suggestion){
echo $suggestion;
}
}
}
?>
<!Doctype HTMl>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Spell Check</title>
</head>
<body>
<form method="get">
<input type="text" name="checkSpelling" autocomplete="off" autofocus />
</form>
</body>
</html>
解决方法:
将您的添加更改为行
function addTo($line){
return strtolower(trim($line));
}
并将您的输入更改为
$input = strtolower(trim($_GET['checkSpelling']));
文件命令有一个令人讨厌的习惯,就是留下尾随的换行符,所以你可能根本不匹配…修剪应该处理它.其他变化只是为了使它不区分大小写.
内容总结
以上是互联网集市为您收集整理的PHP的similar_text()和in_array()不能正常工作全部内容,希望文章能够帮你解决PHP的similar_text()和in_array()不能正常工作所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。