FeedModel::formatFeedContent PHP Method

formatFeedContent() public method

截取分享内容,将分享中的URL替换成{ts_urlX}进行字符数目统计
public formatFeedContent ( string $content, string $weiboNums ) : array
$content string 分享内容
$weiboNums string 分享截取数目,默认为0
return array 格式化后的分享内容,body与content
    public function formatFeedContent($content, $weiboNums = 0)
    {
        // 拼装数据,如果是评论再转发、回复评论等情况,需要额外叠加对话数据
        $content = str_replace(SITE_URL, '[SITE_URL]', preg_html($content));
        // 格式化分享信息 - URL
        $content = preg_replace_callback('/((?:https?|mailto|ftp):\\/\\/([^\\x{2e80}-\\x{9fff}\\s<\'\\"“”‘’,。}]*)?)/u', '_format_feed_content_url_length', $content);
        $replaceHash = $GLOBALS['replaceHash'];
        unset($GLOBALS['replaceHash']);
        // 获取用户发送的内容,仅仅以//进行分割
        $scream = explode('//', $content);
        // 截取内容信息为分享内容字数 - 重点
        $feedNums = 0;
        if (empty($weiboNums)) {
            $feedConf = model('Xdata')->get('admin_Config:feed');
            $feedNums = $feedConf['weibo_nums'];
        } else {
            $feedNums = $weiboNums;
        }
        $body = array();
        // 还原URL操作
        $patterns = array_keys($replaceHash);
        $replacements = array_values($replaceHash);
        foreach ($scream as $value) {
            $tbody[] = $value;
            $bodyStr = implode('//', $tbody);
            if (get_str_length(ltrim($bodyStr)) > $feedNums) {
                break;
            }
            $body[] = str_replace($patterns, $replacements, $value);
            unset($bodyStr);
        }
        $data['body'] = implode('//', $body);
        // 获取用户发布内容
        $scream[0] = str_replace($patterns, $replacements, $scream[0]);
        $data['content'] = trim($scream[0]);
        return $data;
    }