Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/243.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在PHP中将整个文本缩减为一些单词_Php - Fatal编程技术网

在PHP中将整个文本缩减为一些单词

在PHP中将整个文本缩减为一些单词,php,Php,我有个问题。我需要一个“文本减缩器” 我的意思是:我给文本区写了任何单词,例如:约翰·多伊是个好孩子;然后我按下一些按钮,它会得到如下结果: 无名氏 所以,它将只输出定义的世界,比如JohnDoe,或者milk之类的东西 感谢您的帮助如果您知道要删除的单词黑名单,可以使用数组替换功能:stru replace: 像这样: $blacklist = ['ugly', 'bad', 'censored']; $yourString = str_replace($yourString, $black

我有个问题。我需要一个“文本减缩器”

我的意思是:我给文本区写了任何单词,例如:约翰·多伊是个好孩子;然后我按下一些按钮,它会得到如下结果:

无名氏

所以,它将只输出定义的世界,比如JohnDoe,或者milk之类的东西


感谢您的帮助

如果您知道要删除的单词黑名单,可以使用数组替换功能:
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子字符串函数可以减少你的文本