-
- // 使用例: $spanned = codeWords($string_containing_keywords);
- // 私のサイト: andrew.dx.am
- // colour==blue を使用しますが、単語の配列と色が異なります
- //追加可能です。
- 関数のみWholeWords(&$value, $key) {
- // // コメント区切り文字の後の単語を無視します。
- //$value = "/b(" . $value . ")b/"; // コメントは処理されません
- //$value = "/^(?:(?!//).)*Kb(" . $value . ")b/";
- // K 後読み代替手段は PHP ではサポートされていません < 5.2.4 なので、次を使用します:
- $value = "/^((?:(?!//).)*)b" 。 $value 。 "b/";
- }
- function addSpan(&$value, $key, $color='blue') {
- $value = "$1" 。 $value 。 "";
- }
- function codeWords($code) {
- $keywords = array('as', 'break', 'case', 'class',
- 'Continue', 'default', ' do'、'elif'、'else'、
- 'elseif'、'for'、'foreach'、'function'、'if'、
- 'new'、'null'、'return'、'self'、' switch',
- 'this', 'to', 'typeof', 'until',
- 'var', 'void', 'while', 'with');
- $keywords2 = $keywords;
- array_walk($keywords , 'onlyWholeWords');
- array_walk($keywords2, 'addSpan', 'blue');
- $code = preg_replace($keywords, $keywords2, $code);
- return $code;
- }
复制代
二、php自动给文章加关键词链接
自動文章は接続に関連する php 関数コードを追加します。
代:
-
$link = array( - '百度,http://www.baidu.com/',
- 'php教程,http://bbs.it- home.org/wb/php/',
- ' 脚本学堂,http://bbs.it-home.org/',
- );
- $str = '百度中検索php教程就可到程序员之家提供php编程文章
- ここには代替コンテンツが必要です。
- $out=keylink($str,$link,1); //$str 原始文字 $link,替换接数组, 3替换次数
- echo $out;
- function _sortDesc($a, $b) {
- return (strlen($a[0]) < strlen($b[0])) ? 1 : -1;
- }
- 関数キーリンク($str,$link,$count=1)
- {
- $linkDefs = $link;
- $linkMap = array();
- foreach($linkDefs as $row) {
- $linkMap[] =explode(',', $row);
- }
foreach($linkMap as $row) {
- $str = preg_replace('/(s*)('.$row[0]. ')(s*)/suit', '${2}', $str);
- }
usort($linkMap, '_sortDesc');
$tmpKwds = array();
foreach ($linkMap as $i=>$row) {
- list($kwd, $url) = $row;
- for($j=$i+1; $j$subKwd = $linkMap[$j][0];
- //如果包含他の关键字、暂時代替他の文字列
- if(strpos($kwd, $subKwd) !== false) {
- $tmpKwd = '{'.md5($subKwd).'}';
- $kwd = str_replace($subKwd, $tmpKwd, $kwd);
- $tmpKwds[$tmpKwd] = $subKwd;
- }
- }
- //ハンドル文字置換成链接
- $str = preg_replace('/('.$row[0].')/sui', ''.$kwd.'', $str, $count);
- }
//子关字の文字を代替えして来ます
- foreach($tmpKwds as $tmp=>$kwd) {
- $str = str_replace($tmp, $kwd 、$str);
- }
- $str; を返します。
- }
- ?>
复制幣
|