ホームページ  >  記事  >  バックエンド開発  >  PHP キーワードにより、スパン タグとキーワード ハイライト コードが自動的に追加されます。

PHP キーワードにより、スパン タグとキーワード ハイライト コードが自動的に追加されます。

WBOY
WBOYオリジナル
2016-07-25 08:51:20940ブラウズ
  1. // 使用例: $spanned = codeWords($string_containing_keywords);
  2. // 私のサイト: andrew.dx.am
  3. // colour==blue を使用しますが、単語の配列と色が異なります
  4. //追加可能です。
  5. 関数のみWholeWords(&$value, $key) {
  6. // // コメント区切り文字の後の単語を無視します。
  7. //$value = "/b(" . $value . ")b/"; // コメントは処理されません
  8. //$value = "/^(?:(?!//).)*Kb(" . $value . ")b/";
  9. // K 後読み代替手段は PHP ではサポートされていません < 5.2.4 なので、次を使用します:
  10. $value = "/^((?:(?!//).)*)b" 。 $value 。 "b/";
  11. }
  12. function addSpan(&$value, $key, $color='blue') {
  13. $value = "$1" 。 $value 。 "";
  14. }
  15. function codeWords($code) {
  16. $keywords = array('as', 'break', 'case', 'class',
  17. 'Continue', 'default', ' do'、'elif'、'else'、
  18. 'elseif'、'for'、'foreach'、'function'、'if'、
  19. 'new'、'null'、'return'、'self'、' switch',
  20. 'this', 'to', 'typeof', 'until',
  21. 'var', 'void', 'while', 'with');
  22. $keywords2 = $keywords;
  23. array_walk($keywords , 'onlyWholeWords');
  24. array_walk($keywords2, 'addSpan', 'blue');
  25. $code = preg_replace($keywords, $keywords2, $code);
  26. return $code;
  27. }
复制代

二、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]) < strlen($b[0])) ? 1 : -1;
  12. }
  13. 関数キーリンク($str,$link,$count=1)
  14. {
  15. $linkDefs = $link;
  16. $linkMap = array();
  17. foreach($linkDefs as $row) {
  18. $linkMap[] =explode(',', $row);
  19. }

  20. foreach($linkMap as $row) {

  21. $str = preg_replace('/(s*)('.$row[0]. ')(s*)/suit', '${2}', $str);
  22. }

  23. usort($linkMap, '_sortDesc');

  24. $tmpKwds = array();

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

  26. list($kwd, $url) = $row;
  27. for($j=$i+1; $j$subKwd = $linkMap[$j][0];
  28. //如果包含他の关键字、暂時代替他の文字列
  29. if(strpos($kwd, $subKwd) !== false) {
  30. $tmpKwd = '{'.md5($subKwd).'}';
  31. $kwd = str_replace($subKwd, $tmpKwd, $kwd);
  32. $tmpKwds[$tmpKwd] = $subKwd;
  33. }
  34. }
  35. //ハンドル文字置換成链接
  36. $str = preg_replace('/('.$row[0].')/sui', ''.$kwd.'', $str, $count);
  37. }

  38. //子关字の文字を代替えして来ます

  39. foreach($tmpKwds as $tmp=>$kwd) {
  40. $str = str_replace($tmp, $kwd 、$str);
  41. }
  42. $str; を返します。
  43. }
  44. ?>

复制幣

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。