7

这听起来像是一个非常简单的问题,但我无法在任何地方找到答案。

我有一个来自 textarea 的帖子。我想使用当前的 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论坛上的某个人建议使用addslashed() ......但这似乎对我不起作用

谢谢,-FT

4

2 回答 2

2

如果您的文本行足够长,并且您将每行中的每个空格替换为不间断空格(“ ”)并在行尾放置一个常规空格,那么这将具有强制每个换行到新行,例如

这 是 一些 例子 文本 等等。这 是 一些 例子 文本 等等。这 是 一些 例子 文本 等等。

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

于 2010-12-22T15:48:27.810 回答
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换行符。

于 2012-07-12T13:26:32.673 回答