Рассчитайте окончательную длину твита в PHP - PullRequest
2 голосов
/ 14 января 2012

twitter устанавливает фиксированную длину символа 20 для всех ссылок внутри твитов.

Таким образом, даже если пользователь использует сервис сокращения URL, такой как bit.ly, и вставляет URL короче, чем 20 символов, все URL наконец, твиттер получит длину в 20 символов.

Мне было интересно, как рассчитать конечную длину твита (включая один или несколько коротких URL-адресов), чтобы он оставался менее 140 символов с PHP.

1 Ответ

6 голосов
/ 14 января 2012

Вы можете заменить свои ссылки на некоторый общий текст с помощью регулярных выражений и считать всю длину с mb_strlen() впоследствии. mb_strlen потому что Твиттер считает многобайтовые символы одним символом.

$tweet = 'Check this: /6904095/rasschitaite-okonchatelnuy-dlinu-tvita-v-php';
$length = mb_strlen(preg_replace('~https?://([^\s]*)~', 'http://8901234567890', $tweet), 'UTF-8');
var_dump($length); // int(32);

Вам, вероятно, придется немного настроить регулярное выражение, так как оно может совпадать со многими (недопустимые символы)

...