Facebook图形API消息-文字或字符限制



我使用PHP、json和API缓存成功地在网站上显示了Facebook Feed消息。然而,有些信息太长,无法放入网站上提供的空间。

有人知道是否有办法限制消息显示的单词或字符数量吗?

最好的情况是,如果低于限制,消息将完全显示,然后显示一定数量的单词或字符i,后跟[…]阅读完整的帖子@pagename

然后我可以添加链接到Facebook帖子来查看完整的消息。我知道如何添加帖子链接和文本,只需要缩小消息。

以下是我正在使用的PHP代码:

<?php $fb_message = $fb_json->data[0]->message; ?>
<?php echo $fb_message; ?>

如有任何帮助,我们将不胜感激。

谢谢,Steve


感谢James Pearce,我能够使用以下代码使其工作:

<?php $fb_message = $fb_json->data[0]->message; $truncated = substr($fb_message, 0, strrpos(substr($fb_message, 0, 100), ' ')); echo $truncated . '...'; ?>

如果消息超过100个字符,它就会起作用,但如果少于100个字符的话,它只会显示第一个单词,而不会显示更多。。。。?

有人知道我做错了什么吗?

没有办法让Facebook API为您截断字符串。然而,在PHP中有很多方法可以做到这一点。

一种简单的方法是使用wordwrap函数(http://www.php.net/wordwrap)并在第一次断线前拿走所有东西。

另请参阅如何在PHP中将字符串截断为最接近特定字符数的单词?

这似乎很好:

<?php 
$fb_message = $fb_json->data[0]->message;
echo array_shift(explode("n", wordwrap($fb_message, 100)));
?>

以下是我用来检查Facebook"消息"字段的长度的代码,如果它超过100个字符,则截断它,如果它足够短,则显示整个内容:

$post->message = $fbdata->data[0]->message; 
$messageLength = strlen($post->message);
if ($messageLength < 100) {
$outputMessage = $post->message; 
} else {
$outputMessage = substr($post->message, 0, strrpos(substr($post->message, 0, 100), ' ')) . ' ...'; 
}
echo $outputMessage;

最新更新