2010-10-13 9 views
7

To brzmi jak dość proste pytanie, ale mogę znaleźć odpowiedź nie gdzie.Jak dodać znaki nowej linii lub powrotu karetki do opisu na facebook graph API

Mam post z textarea. i chcę użyć aktualnej biblioteki php na Facebooku, aby wykonać następujące czynności:

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

i działają. Teraz wydaje się ignorować

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

ale jestem pewien, że mogę zrobić coś zepsuć moje testowanie .. po prostu trzeba wymienić „magia” z czymś, co działa. W tej chwili po prostu konwertuje wszystkie nowe znaki, które rzucam w tym miejscu na przestrzenie .. Dość frustrujące. Ktoś na forum facebook zaproponował addslashed() wszystkich rzeczy ... ale to nie wydają się działać dla mnie

Dzięki, -Ft

+0

Sprawdź api facebook, czy nowe linie są nawet obsługiwane w polu opisu. Możliwe, że je rozbierają w inny sposób. – Fanis

+0

Byłbym zaskoczony, gdyby było to możliwe, są one bardzo rygorystyczne do tego, co jest dozwolone w postach na ścianie (w rzeczywistości nic nie jest dozwolone). – serg

Odpowiedz

2

Jeśli wiersze tekstu są wystarczająco długie, i zastąpić każdy spacja w każdej linii z niepustym spacją ("& nbsp;") i umieścić zwykłą spację na końcu linii, to spowoduje wymuszenie każdej linii na nowej linii, np.

Ten & nbsp; jest & nbsp; niektóre & nbsp; przykład & nbsp; tekst & nbsp; itp. Ten & nbsp; jest & nbsp; niektóre & nbsp; przykład & nbsp; tekst & nbsp; itp. Ten & nbsp; jest & nbsp; niektóre & nbsp; przykład & nbsp; tekst & nbsp; itp.

Jeśli dowolne linie są zbyt krótkie, można je rozwinąć za pomocą & nbsp; znaki

2

Piszę prostą funkcję, która dodaje &nbsp; po każdym wierszu tekstu.

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

UWAGA: w łańcuchu należy używać \n dla nowych linii.

+0

To działało dla mnie, ale muszę dodać wiadomość $. = ''; przed powrotem – marcostrama