欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

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

程序员文章站 2022-05-16 20:37:47
...
  1. /*

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

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

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

    " . $str_hl . "

    \n";
  53. echo "
    ";
  54. echo "

    " . htmlspecialchars($str_hl) . "

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