ftrotter
ftrotter

Reputation: 3144

How to add newlines or carriage returns to description on facebook graph API

It sounds like a pretty simple question but I can find the answer no where.

I have a post from a textarea. and I want to use the current facebook php library to do the following...

$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);

and have it work. Right now it seems to ignore

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

but I am sure I might have done something to screw up my testing.. I just need to replace 'magic happens' with something that works. Right now it just converts all of the newlines I am throwing at it to spaces.. Pretty frustrating. Someone on the facebook forums suggested addslashed() of all things... but that did not seem to work for me

Thanks, -FT

Upvotes: 7

Views: 5178

Answers (2)

Faraona
Faraona

Reputation: 1700

I write simple function which add &nbsp; after every row text.

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;
}

NOTE: in your string you must use \n for new lines.

Upvotes: 2

GStephens
GStephens

Reputation: 517

If your lines of text are long enough, and you replace each space in each line with a non-breaking space ("&nbsp;") and put a regular space at the end of the line, then this will have the effect of forcing each line onto a new line, e.g.

This&nbsp;is&nbsp;some&nbsp;example&nbsp;text&nbsp;etc. This&nbsp;is&nbsp;some&nbsp;example&nbsp;text&nbsp;etc. This&nbsp;is&nbsp;some&nbsp;example&nbsp;text&nbsp;etc.

If any lines are too short, you can pad them out with &nbsp; chars

Upvotes: 2

Related Questions