2012-09-20 19 views
0

我不能讓點擊提取的單詞本功能:PHP功能:使提取的單詞可點擊嗎?

$text = $curTemplate['name']; 
function extract_keywords($str, $minWordLen = 4, $minWordOccurrences = 1, $asArray = false) 
{ 
    function keyword_count_sort($first, $sec) 
    { 
     return $sec[1] - $first[1]; 
    } 
    $str = preg_replace('/[^\p{L}0-9 ]/', ' ', $str); 
    $str = trim(preg_replace('/\s+/', ' ', $str)); 

    $words = explode(' ', $str); 
    $keywords = array(); 
    while(($c_word = array_shift($words)) !== null) 
    { 
     if(strlen($c_word) < $minWordLen) continue; 

     $c_word = strtolower($c_word); 
     if(array_key_exists($c_word, $keywords)) $keywords[$c_word][1]++; 
     else $keywords[$c_word] = array($c_word, 1); 
    } 
    usort($keywords, 'keyword_count_sort'); 

    $final_keywords = array(); 
    foreach($keywords as $keyword_det) 
    { 
     if($keyword_det[1] < $minWordOccurrences) break; 
     array_push($final_keywords, $keyword_det[0]); 
    } 
    return $asArray ? $final_keywords : implode(', ', $final_keywords); 
} 
//How to use 

//Basic lorem ipsum text to extract the keywords 
$text = "stackoverflow a language independent collaboratively edited question and answer site for programmers"; 

echo extract_keywords($text); 

我想這樣的話:

<a href="http://website.com/search.php?search=<?php echo extract_keywords($text); ?>"><?php echo extract_keywords($text); ?></a> 

,但不以這種方式工作的工作

但沒有關鍵字鏈接:(爲什麼????

<a href="http://website.com/search.php?search=NO KEY"><?php echo extract_keywords($text); ?></a> 
+0

你到底在生成的HTML中得到了什麼? 'var_dump(extract_keywords($ test))'顯示了什麼? –

+0

我認爲解決方案在這裏: –

+0

我認爲解決方案在這裏返回$ asArray? $ final_keywords:implode(',',$ final_keywords); <---------------在final_keywords中如何添加

回答

1

作爲menti oned:

$keywords = extract_keywords($text, 4, 1, true); 

foreach($keywords as $k => $keyword){ 
    echo '<a href="http://website.com/search.php?search=' . $keyword . '">' . $keyword . '</a>' . ($k != (count($keywords) - 1) ? ',' : ''); 
} 
+0

謝謝@trickyzter :)現在工作!但如何用逗號分隔各個關鍵字(,) –

+0

請參閱上面的更新。如果這能解決您的問題,請將答案標記爲正確。 ;) – trickyzter

+0

好的!比你非常!你可以在這裏測試它:http://apps.facebook.com/cover-maker/ –