/** * 转化ubb标签 * * @param string $message * @param object $config ubb转换配置 * @return string */ public static function convert($message, PwUbbCodeConvertConfig $config = null) { is_null($config) && ($config = new PwUbbCodeConvertConfig()); self::_init(); self::_startParse(); self::$_cvtimes = $config->cvtimes; self::hasTag($message, 'code') && ($message = self::parseCode($message)); $message = PwSimpleHook::getInstance('PwUbbCode_convert')->runWithFilters($message); $message = self::convertTag($message, array('u', 'b', 'i', 'sub', 'sup', 'strike', 'blockquote')); $message = self::convertHr($message); $message = self::convertList($message); $message = self::convertFont($message); $message = self::convertColor($message); $message = self::convertBackColor($message); $message = self::convertSize($message, $config->maxSize); $message = self::convertEmail($message); $message = self::convertAlign($message); $message = self::convertGlow($message); self::_startParse(); strpos($message, '[s:') !== false && ($message = self::parseEmotion($message)); $message = self::parseAttachment($message, $config); self::hasTag($message, 'img') && ($message = self::parseImg($message, $config->isConverImg, $config->imgWidth, $config->imgHeight, $config->imgLazy)); self::hasTag($message, 'url') && ($message = self::parseUrl($message)); self::hasTag($message, 'flash') && ($message = self::parseFlash($message, $config->isConvertFlash)); $config->remindUser && ($message = self::parseRemind($message, $config->remindUser)); $config->isConvertMedia && ($message = self::parseMedia($message, $config->isConvertMedia == 2)); $config->isConvertIframe && self::hasTag($message, 'iframe') && ($message = self::parseIframe($message, $config->isConvertIframe == 2)); $config->isConvertPost && self::hasTag($message, 'post') && ($message = self::parsePost($message, $config)); $config->isConvertHide && self::hasTag($message, 'hide') && ($message = self::parseHide($message, $config)); $config->isConvertSell && self::hasTag($message, 'sell') && ($message = self::parseSell($message, $config)); self::hasTag($message, 'quote') && ($message = self::parseQuote($message)); $config->isConvertTable && ($message = self::convertTable($message, $config->isConvertTable)); $message = self::convertParagraph($message); $message = self::_convertCode($message); $message = self::_convertCode($message); self::$_cvtimes = -1; return $message; }