在PHP中将整个文本缩减为一些单词
我有个问题。我需要一个“文本减缩器” 我的意思是:我给文本区写了任何单词,例如:约翰·多伊是个好孩子;然后我按下一些按钮,它会得到如下结果: 无名氏 所以,它将只输出定义的世界,比如JohnDoe,或者milk之类的东西在PHP中将整个文本缩减为一些单词,php,Php,我有个问题。我需要一个“文本减缩器” 我的意思是:我给文本区写了任何单词,例如:约翰·多伊是个好孩子;然后我按下一些按钮,它会得到如下结果: 无名氏 所以,它将只输出定义的世界,比如JohnDoe,或者milk之类的东西 感谢您的帮助如果您知道要删除的单词黑名单,可以使用数组替换功能:stru replace: 像这样: $blacklist = ['ugly', 'bad', 'censored']; $yourString = str_replace($yourString, $black
感谢您的帮助如果您知道要删除的单词黑名单,可以使用数组替换功能:
stru replace
:
像这样:
$blacklist = ['ugly', 'bad', 'censored'];
$yourString = str_replace($yourString, $blacklist, '');
这将从输入字符串中删除黑名单中的每个单词
如果需要基于白名单的筛选器,可以使用将字符串拆分为一个单词数组,然后使用array\u filter
函数:
使用类似于:
$whitelist = ['good', 'neat', 'stuff'];
$tokens = preg_split("/[\s,]+/", $yourString);
$filtered = array_filter($tokens, function ($item) {
return in_array($token, $whitelist);
});
$finalString = implode(' ', $filtered);
是的,您可以编写一个函数,在这种情况下,它接收一个数组作为参数,但如果是静态的,您可以将其保存在函数中 另外,使用带有preg_match的正则表达式也可以,但我将把它留给您 由于“strtolower”,当前忽略大小写。如果不想忽略大小写,请删除此函数调用
函数printWhiteListedText($arrWhitelist,$str){
$auxStr=“”;
foreach($word形式的白名单){
如果(strpos(strtolower($str),strtolower($word))>-1){
$auxStr.=$word.';
}
}
返回修剪($auxStr);
}
echo printWhiteListedText(['Hello','world','Hello this world is great');
请帮助我理解。你为什么要这么做?为什么不把定义好的单词写进文本区域呢?我想在这个在线分析器上做一个测试,因为我们的was closeduse子字符串函数可以减少你的文本