如何在Facebook Graph API的描述中添加换行或回车

7

这似乎是一个非常简单的问题,但我找不到答案。

我有一个来自文本区域的帖子。我想使用当前的Facebook PHP库来实现以下操作...

$description = $_POST['textarea_description'];

//magic happens

$attachment =  array(
'access_token' => $token,
'message' => "$title",
'picture' => "$image_url",
'link' => "$action_link",
'name' => "$action_label",
'caption' => "$caption",
'actions' => $action_json,
'description' => "$description",
 );

$facebook->api('/'.$my_uid.'/feed', 'POST', $attachment);

并让它正常工作。目前似乎忽略了

<br> <br /> \n \r \n\r \r\n

但我确信我可能做了一些事情来搞砸我的测试...我只需要用有效的内容替换“魔法发生”的部分。现在它只是将我输入的所有换行符转换为空格...非常令人沮丧。Facebook论坛上有人建议使用addslashes()函数...但对我来说似乎没有起作用。

谢谢, -FT


检查 Facebook API,看看描述字段是否支持换行符。很有可能他们会将其剥离。 - Fanis Hatzidakis
如果这是可能的话,我会感到非常惊讶。他们对于墙上的帖子非常严格,几乎不允许任何内容。 - serg
2个回答

2

我编写了一个简单的函数,它可以在每行文本后添加&nbsp;

public static function fbLinkDescriptionNewLines($string){
    $parts = explode("\n", $string);
    $row_limit = 60;

    $message = '';
    foreach($parts as $part){
      $str_len = strlen($part);
      $diff = ($row_limit - $str_len);

      $message .= $part;

      for($i=0; $i <= $diff; $i++){
        $message .= '&nbsp;';
      }
   }
    return $message;
}

注意:在你的字符串中,必须使用\n表示换行。


这对我有用,但在返回之前我需要添加 $message .= ' '; - marcostrama

2
如果你的文本行足够长,并且将每行中的每个空格替换为不间断空格(" "),并在每行末尾放置一个常规空格,则会强制将每行放到新行上,例如:

This is some example text etc. This is some example text etc. This is some example text etc.

如果任何行太短,您可以使用 字符填充它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接