1

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

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

最好的方案是让消息在低于限制时完全显示,然后显示一定数量的单词或字符 i 后跟 [...] 阅读全文@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 个字符,它只会显示第一个单词而不会显示更多......?

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

4

2 回答 2

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;
于 2014-04-04T18:24:19.690 回答
0

无法让 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)));
?>
于 2012-11-16T00:34:46.697 回答