Facebook Graph API消息 - 单词或字符限制

时间:2012-11-15 23:53:09

标签: facebook facebook-graph-api message

我使用PHP,json和API Cache在网站上成功显示Facebook Feed消息。但是,有些消息太长,无法容纳在网站上提供的空间中。

有没有人知道是否有办法限制信息显示的字数或字符数量?

最好的情况是如果信息低于限制就会显示信息,然后显示一定数量的单词或字符,然后显示[...]阅读完整帖子@pagename

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

这是我正在使用的PHP代码:

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

非常感谢任何帮助。

谢谢, 史蒂夫


感谢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个字符,它只显示第一个字而不再显示....?

任何人都知道我做错了什么?

2 个答案:

答案 0 :(得分:0)

没有办法让Facebook API为您截断字符串。但是,有很多方法可以在PHP中执行此操作。

一种简单的方法是使用wordwrap函数(http://www.php.net/wordwrap)并在第一个换行符之前获取所有内容。

另见How to Truncate a string in PHP to the word closest to a certain number of characters?

这看起来很好用:

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

答案 1 :(得分:0)

这是我用来检查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;