php关键词自动添加span标签与关键词高亮代码

php中文网
发布: 2016-07-25 08:51:20
原创
1259人浏览过
  1. // Example use: $spanned = codeWords($string_containing_keywords);
  2. // My site: andrew.dx.am
  3. // Using colour==blue, but different arrays of words and different
  4. // colours can be added.
  5. function onlyWholeWords(&$value, $key) {
  6. // Ignores words after // comment delimiters.
  7. //$value = "/\b(" . $value . ")\b/"; // doesn't handle comments
  8. //$value = "/^(?:(?!\/\/).)*\K\b(" . $value . ")\b/";
  9. // \K lookbehind alternative is not supported in PHP $value = "/^((?:(?!\/\/).)*)\b" . $value . "\b/";
  10. }
  11. function addSpan(&$value, $key, $color='blue') {
  12. $value = "$1" . $value . "";
  13. }
  14. function codeWords($code) {
  15. $keywords = array('as', 'break', 'case', 'class',
  16. 'continue', 'default', 'do', 'elif', 'else',
  17. 'elseif', 'for', 'foreach', 'function', 'if',
  18. 'new', 'null', 'return', 'self', 'switch',
  19. 'this', 'to', 'typeof', 'until',
  20. 'var', 'void', 'while', 'with');
  21. $keywords2 = $keywords;
  22. array_walk($keywords, 'onlyWholeWords');
  23. array_walk($keywords2, 'addSpan', 'blue');
  24. $code = preg_replace($keywords, $keywords2, $code);
  25. return $code;
  26. }
复制代码

二、php自动给文章加关键词链接

自动给文章加关键词链接的php函数代码。

代码:

  1. $link = array(

  2. '百度,http://www.baidu.com/',
  3. 'php教程,http://bbs.it-home.org/wb/php/',
  4. '脚本学堂,http://bbs.it-home.org/',
  5. );
  6. $str = '在百度中搜索php教程就可以到程序员之家提供的php编程文章
  7. 此处放置需要替换的内容。';
  8. $out=keylink($str,$link,1); //$str 原始字符 $link,替换链接数组, 3替换次数
  9. echo $out;
  10. function _sortDesc($a, $b) {
  11. return (strlen($a[0]) }
  12. function keylink($str,$link,$count=1)
  13. {
  14. $linkDefs = $link;
  15. $linkMap = array();
  16. foreach($linkDefs as $row) {
  17. $linkMap[] = explode(',', $row);
  18. }
  19. foreach($linkMap as $row) {

  20. $str = preg_replace('/(\s*)('.$row[0].')(\s*)/sui', '${2}', $str);
  21. }
  22. usort($linkMap, '_sortDesc');

    立即学习PHP免费学习笔记(深入)”;

    一键职达
    一键职达

    AI全自动批量代投简历软件,自动浏览招聘网站从海量职位中用AI匹配职位并完成投递的全自动操作,真正实现'一键职达'的便捷体验。

    一键职达 79
    查看详情 一键职达
  23. $tmpKwds = array();

  24. foreach($linkMap as $i=>$row) {

  25. list($kwd, $url) = $row;
  26. for($j=$i+1; $j$subKwd = $linkMap[$j][0];
  27. //如果包含其他关键字,暂时替换成其他字符串
  28. if(strpos($kwd, $subKwd) !== false) {
  29. $tmpKwd = '{'.md5($subKwd).'}';
  30. $kwd = str_replace($subKwd, $tmpKwd, $kwd);
  31. $tmpKwds[$tmpKwd] = $subKwd;
  32. }
  33. }
  34. //把文字替换成链接
  35. $str = preg_replace('/('.$row[0].')/sui', ''.$kwd.'', $str, $count);
  36. }
  37. //把代替子关键字的字符串替换回来

  38. foreach($tmpKwds as $tmp=>$kwd) {
  39. $str = str_replace($tmp, $kwd, $str);
  40. }
  41. return $str;
  42. }
  43. ?>
复制代码


PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号