亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用PHP計算推文長度,就像推特一樣

使用PHP計算推文長度,就像推特一樣

PHP
鳳凰求蠱 2022-08-19 16:49:50
我想像推特一樣計算推文長度,我嘗試在這里使用和所有這些類型mb_strlenstrlen問題是twitter計數為15,但是我得到了這些結果,我不知道twitter如何計算表情符號以及如何用php來處理這個問題"???????? @mention"我的結果:strlen: 27mb_strlen UTF-8: 14mb_strlen UTF-16: 13iconv UTF-16: 14iconv UTF-16: 27
查看完整描述

2 回答

?
弒天下

TA貢獻1818條經驗 獲得超8個贊

來自 Twitter 的開發者文檔

對于具有Unicode處理經驗的程序員來說,這個問題的簡短答案是,推文長度是通過文本的NFC規范化版本中的碼位數來衡量的。

因此,要計算PHP中推文的長度,您將首先使用規范化表單C(NFC)規范化文本,然后計算規范化文本中的碼位不是字符)的數量。

$text = "???????? @mention";


// Get the normalized text in UTF-8

$NormalizedText = Normalizer::normalize($text, Normalizer::FORM_C );


// Now we can calculate the number of codepoints in this normalized text

$it = IntlBreakIterator::createCodePointInstance();

$it->setText($NormalizedText);


$len = 0;

foreach ($it as $codePoint) {

    $len++;

}


echo "Length = $len"; // Result: Length = 15


查看完整回答
反對 回復 2022-08-19
?
元芳怎么了

TA貢獻1798條經驗 獲得超7個贊

在某些情況下,@Sherif答案不起作用。我發現這個庫運行良好nojimage/twitter-text-php


這是我的代碼


use Twitter\Text\Parser;


$validator = Parser::create()->parseTweet($caption);

        

if ($validator->weightedLength > 280) {

    throw new MessageException("Maximum post length is 280 characters.");

}


查看完整回答
反對 回復 2022-08-19
  • 2 回答
  • 0 關注
  • 161 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號