3v4l.org

run code in 300+ PHP versions simultaneously
<?php class keywords { public $ngramsSpecific = array ( 'tos pačios lyties', 'seksualin* mažum*', 'gėj* eityn*' ); public $ngramsGeneric = array ( 'žmogaus teis*' ); public $keywordsSpecific = array ( 'gėjus', 'lesbietė', 'transvestitas', 'homoseksualas', 'biseksualas', 'homoseksualumas', 'homoseksualus', 'pride', 'LGBT', 'homofobija', 'homofobiškas', 'transseksualas', 'LGBTQ', 'DOMA', 'queer' ); public $keywordsGeneric = array ( 'tolerantiškas', 'tolerancija', 'diskriminacija', 'orientacija', 'paradas', 'eitynės', 'neapykanta', 'lygybė', 'mažuma' ); public $positiveAuthors = array ( 'Nida Vasiliauskaitė', 'Artūras Rudomanskis', 'Marija Aušrinė Pavilionienė', 'Mindaugas Kluonis', 'J. V. Daugmaudis' ); public $negativeAuthors = array ( 'Liudvika Pociūnienė', 'Tomas Čyvas', 'Vytautas Sinica', 'Paulius Stonis' ); } // this function checks the relevancy of an article function getRelevancy(article $article = null) { $keywords = new keywords(); //$articleBody = strtolower($article->body); $articleBody = "laba diena seksualinė mažuma yra labai geri, bet seksualinės mažumos nėra pats geriausias vaistas nuo visu ligu, nes seksualinėse mažumose gali buti pasitaike daugybe ivairiu dalyku tuo tarpu aseseksualinės mažumos nenori valgyto"; $match = array(); foreach($keywords->ngramsSpecific as $ngram) { //\b(seksualin\w+)\s\b(mazum\w+) $ngram = str_ireplace('*', '\w+', $ngram); $exploded = explode(" ", $ngram); foreach($exploded as &$piece) { $piece = "\b(" . $piece . ")"; } $regex = "/" . implode("\s", $exploded) . "/iUu"; preg_match($regex, $articleBody, $matches); $match[] = $matches; } return $match; } print_r(getRelevancy());

preferences:
55.69 ms | 402 KiB | 5 Q