我使用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个字符,它只显示第一个字而不再显示....?
任何人都知道我做错了什么?
答案 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;