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 nr rn
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
If your lines of text are long enough, and you replace each space in each line with a non-breaking space (" ") 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, eg
This is some example text etc. This is some example text etc. This is some example text etc.
If any lines are too short, you can pad them out with chars
I write simple function which add
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 .= ' ';
}
}
return $message;
}
NOTE: in your string you must use n
for new lines.