Rumah  >  Artikel  >  pembangunan bahagian belakang  >  php自动给文章加关键词链接的实现代码

php自动给文章加关键词链接的实现代码

WBOY
WBOYasal
2016-07-25 08:57:361245semak imbas
  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] ) }
  15. function keylink($str, $link, $count = 1) {
  16. $linkDefs = $link;
  17. $linkMap = array ();
  18. foreach ( $linkDefs as $row ) {
  19. $linkMap [] = explode ( ‘,’, $row );
  20. }
  21. foreach ( $linkMap as $row ) {
  22. $str = preg_replace ( ‘/(s*)(‘ . $row [0] . ‘)(s*)/sui’, ‘${2}’, $str );
  23. }
  24. usort ( $linkMap, ‘_sortDesc’ );
  25. $tmpKwds = array ();
  26. foreach ( $linkMap as $i => $row )
  27. {
  28. list ( $kwd, $url ) = $row;
  29. for($j = $i + 1; $j {
  30. $subKwd = $linkMap [$j] [0];
  31. //如果包含其他关键字,暂时替换成其他字符串
  32. if (strpos ( $kwd, $subKwd ) !== false)
  33. {
  34. $tmpKwd = ‘{‘ . md5 ( $subKwd ) . ‘}’;
  35. $kwd = str_replace ( $subKwd, $tmpKwd, $kwd );
  36. $tmpKwds [$tmpKwd] = $subKwd;
  37. }
  38. }
  39. //把文字替换成链接
  40. $str = preg_replace ( ‘/(‘ . $row [0] . ‘)/sui’, ‘’ . $kwd . ‘’, $str, $count );
  41. }
  42. //把代替子关键字的字符串替换回来
  43. foreach ( $tmpKwds as $tmp => $kwd ) {
  44. $str = str_replace ( $tmp, $kwd, $str );
  45. }
  46. return $str;
  47. }
  48. ?>
复制代码


Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn