>  기사  >  백엔드 개발  >  기사에 키워드 링크를 자동으로 추가하는 PHP 구현 코드

기사에 키워드 링크를 자동으로 추가하는 PHP 구현 코드

WBOY
WBOY원래의
2016-07-25 08:57:361257검색
  1. /**
  2. * 添加文章关键词,内链
  3. * by bbs.it-home.org
  4. */
  5. $link = array(
  6. ‘百度,http://www.baidu.com/’,
  7. ‘dedecms,http://bbs.it-home.org/’,
  8. );
  9. $str = ‘在百度中搜索dedecms’;
  10. $out = keylink ( $str, $link, 1 );
  11. //$str 原始字符 $link,替换链接数组, 3替换次数
  12. echo $out;
  13. function _sortDesc($a, $b) {
  14. return (strlen ( $a [0] ) < strlen ( $b [0] )) ? 1 : – 1;
  15. }
  16. function keylink($str, $link, $count = 1) {
  17. $linkDefs = $link;
  18. $linkMap = array ();
  19. foreach ( $linkDefs as $row ) {
  20. $linkMap [] = explode ( ‘,’, $row );
  21. }
  22. foreach ( $linkMap as $row ) {
  23. $str = preg_replace ( ‘/(s*)(‘ . $row [0] . ‘)(s*)/sui’, ‘’, $str );
  24. }
  25. usort ( $linkMap, ‘_sortDesc’ );
  26. $tmpKwds = array ();
  27. foreach ( $linkMap as $i => $row )
  28. {
  29. list ( $kwd, $url ) = $row;
  30. for($j = $i 1; $j < count ( $linkMap ); $j )
  31. {
  32. $subKwd = $linkMap [$j] [0];
  33. //如果包含其他关键字,暂时替换成其他字符串
  34. if (strpos ( $kwd, $subKwd ) !== false)
  35. {
  36. $tmpKwd = ‘{‘ . md5 ( $subKwd ) . ‘}’;
  37. $kwd = str_replace ( $subKwd, $tmpKwd, $kwd );
  38. $tmpKwds [$tmpKwd] = $subKwd;
  39. }
  40. }
  41. //把文字替换成链接
  42. $str = preg_replace ( ‘/(‘ . $row [0] . ‘)/sui’, ‘’ . $kwd . ‘’, $str, $count );
  43. }
  44. //把代替子关键字的字符串替换回来
  45. foreach ( $tmpKwds as $tmp => $kwd ) {
  46. $str = str_replace ( $tmp, $kwd, $str );
  47. }
  48. return $str;
  49. }
  50. ?>
复制代码


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.