本文实例讲述了PHP函数实现从一个文本字符串中提取关键字的方法。分享给大家供大家参考。具体分析如下:
这是一个函数定位接收一个字符串作为参数(连同其他配置可选参数),并且定位该字符串中的所有关键字(出现最多的词),返回一个数组或一个字符串由逗号分隔的关键字。功能正常工作,但我正在改进,因此,感兴趣的朋友可以提出改进意见。
/** * Finds all of the keywords (words that appear most) on param $str * and return them in order of most occurrences to less occurrences. * @param string $str The string to search for the keywords. * @param int $minWordLen[optional] The minimun length (number of chars) of a word to be considered a keyword. * @param int $minWordOccurrences[optional] The minimun number of times a word has to appear * on param $str to be considered a keyword. * @param boolean $asArray[optional] Specifies if the function returns a string with the * keywords separated by a comma ($asArray = false) or a keywords array ($asArray = true). * @return mixed A string with keywords separated with commas if param $asArray is true, * an array with the keywords otherwise. */ function extract_keywords($str, $minWordLen = 3, $minWordOccurrences = 2, $asArray = false) { function keyword_count_sort($first, $sec) { return $sec[1] - $first[1]; } $str = preg_replace('/[^\\w0-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 = " Lorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur eget ipsum ut lorem laoreet porta a non libero. Vivamus in tortor metus. Suspendisse potenti. Curabitur metus nisi, adipiscing eget placerat suscipit, suscipit vitae felis. Integer eu odio enim, sed dignissim lorem. In fringilla molestie justo, vitae varius risus lacinia ac. Nulla porttitor justo a lectus iaculis ut vestibulum magna egestas. Ut sed purus et nibh cursus fringilla at id purus. "; //Echoes: lorem, suscipit, metus, fringilla, purus, justo, eget, vitae, ipsum, curabitur, adipiscing echo extract_keywords($text);
希望本文所述对大家的php程序设计有所帮助。

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

EditPlus 中国語クラック版
サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません
