Incorrect handling (length count) of multi-byte strings
-
The length limit of multi-byte strings (such as those containing greek characters), is incorrectly calculated.
As a result the tweets are truncated to a shorter length than the one actually set in the plugin’s code (100 chars).
The issue is resolved by replacing the string handling function calls (strlen, strpos, substr) in the “shorten” function in tm-click-to-tweet.php, line 206, with the multi-byte ones (mb_strlen, mb_strpos, mb_substr respectively).
Here is the code:
public function shorten($input, $length, $ellipses = true, $strip_html = true) { if ($strip_html) { $input = strip_tags($input); } if (mb_strlen($input) <= $length) { return $input; } $last_space = mb_strrpos(mb_substr($input, 0, $length), ' '); $trimmed_text = mb_substr($input, 0, $last_space); if ($ellipses) { $trimmed_text .= '...'; } return $trimmed_text; }
https://www.ads-software.com/plugins/click-to-tweet-by-todaymade/
Viewing 1 replies (of 1 total)
Viewing 1 replies (of 1 total)
- The topic ‘Incorrect handling (length count) of multi-byte strings’ is closed to new replies.