插件8:拼写检查

插件8:拼写检查<?php//Plug-in8:SpellCheck//Thisisanexecutableexamplewithadditionalcodesupplie

大家好,又见面了,我是你们的朋友全栈君。原文地址为:
插件8:拼写检查

<?php // Plug-in 8: Spell Check

// This is an executable example with additional code supplied
// To obtain just the plug-ins please click on the Download link

$text = "It was the best of tmes, it was the wrst of times, it was the age of wisdom, it was the age of foolishnes, it was the epoch of beleif, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despare, we had everything before us, we had nothing before us, we were all going drect to heaven.";

echo "$text<br /><br />";
echo PIPHP_SpellCheck($text, "u");

function PIPHP_SpellCheck($text, $action)
{
   // Plug-in 8: Spell Check
   //
   // This plug-in takes a string of text and then highlights
   // those words it doesn't recognise in the dictionary file.
   // The arguments required are:
   //
   //    $text:    Text to be modified
   //    $action:  What to do with unrecognized words:
   //              "u", "b", "i" = Underline, Bold or Italic

   $dictionary = PIPHP_SpellCheckLoadDictionary("dictionary.txt");
   $text      .= ' ';
   $newtext    = "";
   $offset     = 0;

   while ($offset < strlen($text))
   {
      preg_match('/[^\w]*([\w]+)[^\w]+/',
         $text, $matches, PREG_OFFSET_CAPTURE, $offset);
      $word   = $matches[1][0];
      $offset = $matches[0][1] + strlen($matches[0][0]);
      
      if (!PIPHP_SpellCheckWord($word, $dictionary))
         $newtext .= "<$action>$word</$action> ";
      else $newtext .= "$word ";
   }
   
   return rtrim($newtext);
}

function PIPHP_SpellCheckLoadDictionary($filename)
{
   return explode("\r\n", file_get_contents($filename));
}

function PIPHP_SpellCheckWord($word, $dictionary)
{
   $top = sizeof($dictionary) -1;
   $bot  = 0;
   $word = strtolower($word);

   while($top >= $bot)
   {
      $p =   floor(($top + $bot) / 2);
      if     ($dictionary[$p] < $word) $bot = $p + 1;
      elseif ($dictionary[$p] > $word) $top = $p - 1;
      else   return TRUE;
   }
     
   return FALSE;
}

?>

1. 插件说明:

插件8需要两个参数。一个代表需要拼写检查的字符串,另一个表示拼写检查后文本的显示方式。它们是:

$text 字符串变量,表示需要拼写检查的文本。

$action 字符串变量,它是一个字母,表示文本显示的格式。

dictionary.txt:

《太长了,省略。》

 

转载请注明本文地址:
插件8:拼写检查

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131120.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JAVA程序员简历模板_Java工程师简历模板

    JAVA程序员简历模板_Java工程师简历模板Java程序员简历模板本简历模板由国内首家互联网人才拍卖网站「 JobDeer.com 」提供。(括号里的是我们的顾问编写的说明,建议在简历书写完成后统一删除)先讲讲怎样才是一份好的技术简历首先,一份好的简历不光说明事实,更通过FAB模式来增强其说服力。Feature:是什么Advantage:比别人好在哪些地方Benefit:如果雇佣你,招聘方会得到什么好

    2025年6月25日
    13
  • Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?

    Android 开发者,你真的会用textview(maxEms和maxLength)的属性吗?这里我们不说那些复杂的属性,光说我们通常用的比较多的,android:maxlength官网API对其的解释为:第一句,也就是说,他是个inputfilter(输入过滤器)他的作用是通过specifiednumber(你指定的数字)来限制textlength(文本长度),这里特指的是文本长度,而无论我们输入什么内容,英文,符号,数字,汉字………………这些都属于文本范围,所以ma

    2022年6月14日
    133
  • 2021年最新100多道 JavaScript 面试题,帮您温故知新

    2021年最新100多道 JavaScript 面试题,祝您一臂之力。

  • 一个普通Android程序员的2018总结2019计划

    一个普通Android程序员的2018总结2019计划承接去年总结:一个普通Android程序员的20182018:总结这一年继续分三个方面吧:职场篇:这一年发生了很多事,上家公司团队经营问题,最终结果是团队解散,期间发生一系列事情,参照一个普通一个Android程序员的心酸历程(2018.5.1)。然后修整两个月,找到了现在这家公司,公司目前规模不大,但各方面管理和上家公司天壤之别,至少目前我工作过的公司里面,算是最好的了,工资不是很高,…

    2022年6月14日
    41
  • 【23】进大厂必须掌握的面试题-50个spring面试

    让我们从Spring面试问题的第一部分开始,即“一般问题”。 一般问题–Spring面试问题 1.不同版本的Spring Framework的主要功能是什么? 版 商标 特征 Sp…

    2020年11月15日
    669
  • 移动互联网寒冬,Android 程序员的出路在哪里?

    移动互联网寒冬,Android 程序员的出路在哪里?安卓行业主要问题是初级Android太多了,会写XML和Activity的程序员太多了,初中级程序员面临很大的竞争,现状也就偏于高级开发者。越来越多的初中级Android程序员找不到满意的工作,甚至根本找不到工作!所以很多人觉得Android要凉了,甚至不惜转行,从头学其它技术。现在的Android招聘要求,已经不是多年之前的要求了。Android应用开发发展到今天,已经成为…

    2022年6月14日
    40

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号