Maison >développement back-end >tutoriel php >php实现关键词替换与加亮的代码

php实现关键词替换与加亮的代码

WBOY
WBOYoriginal
2016-07-25 08:57:37890parcourir
  1. /*

  2. 用处:加亮关键词
  3. 要求:备查文章内除html标签外所有 符号分别用 < 和 > 替代
  4. $rows['content']=str_replace("可能存在问题:效率不高 忘记了大小写转换问题
  5. $content:要加亮的备查文章
  6. $key:关键字
  7. site: bbs.it-home.org
  8. */
  9. function highlight($content,$key) {
  10. $k_fi=substr($key,0,1); //取得关键词第一个字符
  11. $k_len=strlen($key); //计算关键词字数
  12. $l_len=strlen($content); //计算备查文章字数
  13. for($l_n=0;$l_n {
  14. $l_s=substr($content,$l_n,1); //取得备查文章当前字符
  15. if($l_s==" {
  16. while($l_s!=">") //我们就寻找这个标签的关闭
  17. {
  18. $con.=$l_s; //导入结果
  19. $l_n++; //当然要开始取备查文章的下一个字符
  20. $l_s=substr($content,$l_n,1);
  21. }
  22. $con.=$l_s;
  23. }
  24. elseif($l_s==$k_fi) //如果这个字符与关键词第一个字符相同的话
  25. {
  26. $l_key=substr($content,$l_n,$k_len); //取备查文章当前位置是否匹配关键词
  27. if($l_key!=$key)
  28. {
  29. $con.=$l_s; //导入结果
  30. }
  31. else //如果匹配
  32. {
  33. $l_n+=$k_len-1; //计数跳过相应字数
  34. $con.="{$key}"; //加亮关键词
  35. }
  36. }
  37. else
  38. {
  39. $con.=$l_s; //导入结果
  40. }
  41. }
  42. return $con;
  43. }
  44. // 中文测试

  45. //备查字符串
  46. $str="程序员之家程序员之家程序员之家我们大程序员之家家的都是一个程序员之家家";
  47. //关键词
  48. $key="程序员之家";
  49. //调用函数

  50. $str_hl=highlight($str,$key);
  51. echo "

    " . $str_hl . "

    \n";
  52. echo "
    ";
  53. echo "

    " . htmlspecialchars($str_hl) . "

    \n";
  54. ?>
复制代码


Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn