overrideContentColumn : "content"; if(iconv_strlen($this->getRecord()->{$contentColumn}) > OPENVK_ROOT_CONF["openvk"]["preferences"]["wall"]["postSizes"]["emojiProcessingLimit"]) return $text; $emojis = \Emoji\detect_emoji($text); $replaced = []; # OVK-113 foreach($emojis as $emoji) { $point = explode("-", strtolower($emoji["hex_str"]))[0]; if(in_array($point, $replaced)) continue; else $replaced[] = $point; $image = "https://abs.twimg.com/emoji/v2/72x72/$point.png"; $image = "$emoji[emoji]isAd() ? "sponsored" : "ugc"; return "$link" . htmlentities($matches[4]); }), $text ); } private function removeZalgo(string $text): string { return preg_replace("%[\x{0300}-\x{036F}]{3,}%Xu", "�", $text); } function getText(bool $html = true): string { $contentColumn = property_exists($this, "overrideContentColumn") ? $this->overrideContentColumn : "content"; $text = htmlspecialchars($this->getRecord()->{$contentColumn}, ENT_DISALLOWED | ENT_XHTML); $proc = iconv_strlen($this->getRecord()->{$contentColumn}) <= OPENVK_ROOT_CONF["openvk"]["preferences"]["wall"]["postSizes"]["processingLimit"]; if($html) { if($proc) { $rel = $this->isAd() ? "sponsored" : "ugc"; $text = $this->formatLinks($text); $text = preg_replace("%@([A-Za-z0-9]++) \(((?:[\p{L&}\p{Lo} 0-9]\p{Mn}?)++)\)%Xu", "[$1|$2]", $text); $text = preg_replace("%([\n\r\s]|^)(@([A-Za-z0-9]++))%Xu", "$1[$3|@$3]", $text); $text = preg_replace("%\[([A-Za-z0-9]++)\|((?:[\p{L&}\p{Lo} 0-9@]\p{Mn}?)++)\]%Xu", "$2", $text); $text = preg_replace("%([\n\r\s]|^)(#([\p{L}_-]++[0-9]*[\p{L}_-]*))%Xu", "$1$2", $text); $text = $this->formatEmojis($text); } $text = $this->removeZalgo($text); $text = nl2br($text); } if(OPENVK_ROOT_CONF["openvk"]["preferences"]["wall"]["christian"]) ObsceneCensorRus::filterText($text); return $text; } }