用PHP计算最终的推文字符长度

时间:2012-01-14 19:28:05

标签: php api twitter limit character

twitter为推文内的所有链接设置固定字符长度为20。

因此,即使用户使用像bit.ly这样的网址缩短服务,也会粘贴短于20个字符的网址所有网址 最终将通过推特给予20个字符的长度。

我想知道如何计算推文的最终长度(包括一个或多个短网址),因此它使用PHP保持在140个字符以下。

1 个答案:

答案 0 :(得分:6)

您可以通过正则表达式将链接替换为某些通用文本,然后使用mb_strlen()计算整个长度。 mb_strlen因为Twitter将多字节字符计为一个字符。

$tweet = 'Check this: http://stackoverflow.com/questions/8864767/calculate-final-tweet-character-length-in-php';
$length = mb_strlen(preg_replace('~https?://([^\s]*)~', 'http://8901234567890', $tweet), 'UTF-8');
var_dump($length); // int(32);

你可能需要稍微调整正则表达式,因为它可能匹配很多(无效字符)