PHP函数:使提取的单词可点击?

PHP函数:使提取的单词可点击?,php,function,tags,keyword,Php,Function,Tags,Keyword,我无法使用此功能制作可点击的提取单词: $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 = p

我无法使用此功能制作可点击的提取单词:

$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);
$text=$curTemplate['name'];
函数提取_关键字($str,$minWordLen=4,$minwordoccurrencess=1,$asArray=false)
{
函数关键字\u计数\u排序($first,$sec)
{
返回$sec[1]-$first[1];
}
$str=preg_replace('/[^\p{L}0-9]/',''$str);
$str=修剪(预替换('/\s+/','$str));
$words=爆炸(“”,$str);
$keywords=array();
while($c_word=array_shift($words))!==null)
{
如果(strlen($c_word)<$minWordLen)继续;
$c_word=strtolower($c_word);
如果(array_key_存在($c_word,$keywords))$keywords[$c_word][1]+;
else$keywords[$c_-word]=数组($c_-word,1);
}
usort($keywords,'keyword_count_sort');
$final_关键字=数组();
foreach($keywords作为$keyword\u det)
{
如果($keyword_det[1]<$minwordoccurrencess)中断;
数组推送($final\u keywords,$keyword\u det[0]);
}
返回$asArray?$final_关键字:内爆(',',$final_关键字);
}
//如何使用
//基本的lorem ipsum文本来提取关键词
$text=“stackoverflow是一个独立于语言、为程序员协作编辑的问答网站”;
echo-extract_关键字($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>

如上所述:

$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) ? ',' : '');
}
$keywords=提取关键字($text,4,1,true);
foreach($k=>$keyword的关键字){
回显“”。($k!=(计数($keywords)-1)?,':“”);
}

var\u dump(extract\u keywords($test))var\u dump(extract\u keywords($test))向您展示了什么?我认为解决方案在这里:我认为解决方案在这里返回$asArray?$final\u keywords:内爆(“,”,$final\u keywords);您是否希望将每个单独的关键字设置为不同的链接?然后在函数中构建html,或者始终返回数组。是的,我希望每个关键字具有不同的链接。如果您有解决方案,请在此发布:(请:)谢谢@trickyzter:)现在开始工作!但是如何用逗号(,)分隔各个关键字,请参见上面的更新。如果这解决了您的问题,请将答案标记为正确。;)好啊比你好多了!您可以在此处进行测试: