HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/ste.komma.pro/vendor/teamtnt/tntsearch/src/Support/NGramTokenizer.php
<?php
namespace TeamTNT\TNTSearch\Support;

class NGramTokenizer extends AbstractTokenizer implements TokenizerInterface
{
    public $min_gram = 3;
    public $max_gram = 3;

    public function __construct($min_gram = 3, $max_gram = 3)
    {
        $this->min_gram = $min_gram;
        $this->max_gram = $max_gram;
    }

    protected static $pattern = '/[\s,\.]+/';

    public function tokenize($text, $stopwords = [])
    {
        $text = mb_strtolower($text);

        $ngrams = [];
        $splits = preg_split($this->getPattern(), $text, -1, PREG_SPLIT_NO_EMPTY);

        foreach ($splits as $split) {
            for ($currentGram = $this->min_gram; $currentGram <= $this->max_gram; $currentGram++) {
                for ($i = 0; $i <= strlen($split) - $currentGram; $i++) {
                    $ngrams[] = mb_substr($split, $i, $currentGram);
                }
            }
        }

        return $ngrams;
    }
}