2013-11-21 2 views
0

내가 아래 기본 기능을 잃어버린, 그러나 나는 160 개 문자 는, 텍스트는

내가 문자열을 얻을 수보다 긴 텍스트 메시지를 보낼 사용자 수 있도록하기 위해 노력하고있어 char 길이로 나눕니다. 그런 다음 메일을 사용하여 내 문자열을 보냅니다. 텍스트가 전송되는 속도로 인해 손실되는 경우에 대비하여 지연을 배치합니다.

 $string = "Area: {$post['area']}\r\nMessage Type: {$post['messageType']}\r\nOutage Type: {$post['outageType']}\r\nDescription: {$post['description']}\r\nTroubleshooting: {$post['troubleshooting']}\r\n"; 
     $splittedString = str_split($string, 140); 
     foreach($members as $member){ 
      foreach($splittedString as $splitStrng){ 
       sleep(8); 
       mail($member['phone']."@vztext.com", "", $splitStrng, "From: Outage Notifications\r\n"); 

      } 
     } 

이 코드는 신뢰할 수 없습니다. 때로는 텍스트의 전체 문자열을 가져오고 때로는 중간에 잃어버린 하나의 텍스트가 있습니다. 텍스트의 전체 문자열을 안정적으로 보낼 수있는 방법이 있습니까?

+1

를 추가 문자열로 배열 요소를 추가로 다시 문자열을 만들 때마다 카운트! 어쩌면 한 마디의 중간에 140 자루의 숯에! –

+0

그럴 필요가 없습니다. 그것은 단지 전체 텍스트가 누락되었다는 사실입니다. – hamobi

+1

내 코멘트를 다시 읽으십시오! 나는 당신의 단어를 폭발했기 때문에 당신의 텍스트를 잃어 버렸다! –

답변

0

내 솔루션 첫 번째 변경 라인 브레이크는

$text = nl2br($text); 

이 **이 필요하지 않은 BR합니다!하지만 난 당신이 마지막에 그들을 보내집니다!

모든 단어를 나열하려면 '(공백)을 사용하여 폭발하십시오!

$arr = explode(' ',$text); 

다음 단어를 폭발 때문에 다른 작업에게 내가이 그나마 잘 작동 생각

$final = ''; 
$messages = array(); 
foreach($arr as $ar){ 
      $final.=$ar; 
      if(count($final)>140){ 
      $messages[] = $final; 
      $final=''; 
      } 
}