Einzelnen Beitrag anzeigen
  #15  
Alt 12.07.2014, 20:56:41
doschni doschni ist offline
Anfänger
 
Registriert seit: Jul 2014
Alter: 40
Beiträge: 14
Gelöst AW: String zu Array Versand Problem

Zitat:
Zitat von meikel
Hier mal etwas zum Nachdenken:
1. http://mod.php.developer.vc/test/60/ (Quelltext wird angezeigt)
Dank Deinem Script konnte ich's endlich lösen! Vielen Dank. Die Funktion

PHP-Code:
var_dump($recipientAddressList); 
hat mich draufgebracht. Dadurch wurde sichtbar, dass ein multiples Array draus wurde. Dann fiel bei mir der Groschen.

Meine Lösung sieht nun folgendermassen aus:

Ins Formularfeld trage ich nur die Mobile-Nummern ein: 41745554433,41746667788

Code:
<!doctype html>
<html lang="de">
<head>
  <meta charset="utf-8">
  <title>Mehrere Empfänger</title>
</head>

<?php 

if (false === isset($_POST["numbers"])) {

?>

<body>
 <form name="mobile">
  <label for="tags">Empfänger: </label>
  <input type="text" name="numbers" id="tags" size="50">
  <input name="submit" type="submit" value="senden" formaction="" formmethod="post"/>
 </form>
 
</body>
</html>
 
<?php

}
else {

 //--------------------------------------------------------------------------------------
 // websms.com XML Gateway usage sample code
 //  1.) create client, 
 //  2.) create message, 
 //  3.) send message with client.
 //--------------------------------------------------------------------------------------
  include "WebSmsCom_Toolkit.inc"; // will need JSON.phps (Service_JSON) for PHP<5.2.0

  # Modify these values to your needs
  $username             = 'your_username';
  $pass                 = 'your_password';
  $gateway_url          = 'https://api.websms.com/';
  

  $numbers = $_POST['numbers'];
  
  var_dump($numbers);
  
  $ints = array_map('intval', explode(',', $numbers ));
  
  var_dump($ints);
  
  $recipientAddressList = $ints;
  
  var_dump($recipientAddressList);
  
  $utf8_message_text    = "Erfolgreich versandt!";
  
  $maxSmsPerMessage     = 1; 
  $test                 = false; // true: do not send sms for real, just test interface

  try {
    
    // 1.) -- create sms client (once) ------
    $smsClient = new WebSmsCom_Client($username, $pass, $gateway_url);
    //$smsClient->setVerbose(true);

    // 2.) -- create text message ----------------
    $message  = new WebSmsCom_TextMessage($recipientAddressList, $utf8_message_text);
    //$message = binary_sms_sample($recipientAddressList);

    // 3.) -- send message ------------------
    $Response = $smsClient->send($message, $maxSmsPerMessage, $test);

    // show success
    print_r(array(
           "Status          : ".$Response->getStatusCode(),
           "StatusMessage   : ".$Response->getStatusMessage(),
           "TransferId      : ".$Response->getTransferId(),
           "ClientMessageId : ".(($Response->getClientMessageId()) ? 
                                $Response->getClientMessageId() : '<NOT SET>'),
    ));

  // catch everything that's not a successfully sent message
  } catch (WebSmsCom_ParameterValidationException $e) {
    exit("ParameterValidationException caught: ".$e->getMessage()."\n");
    
  } catch (WebSmsCom_AuthorizationFailedException $e) {
    exit("AuthorizationFailedException caught: ".$e->getMessage()."\n");
  
  } catch (WebSmsCom_ApiException $e) {
    echo $e; // possibility to handle API status codes $e->getCode()
    exit("ApiException Exception\n");
    
  } catch (WebSmsCom_HttpConnectionException $e) {
    exit("HttpConnectionException caught: ".$e->getMessage()."HTTP Status: ".$e->getCode()."\n");
  
  } catch (WebSmsCom_UnknownResponseException $e) {
    exit("UnknownResponseException caught: ".$e->getMessage()."\n");
    
  } catch (Exception $e) {
    exit("Exception caught: ".$e->getMessage()."\n");
  }

//-- end of main

//-----------------------------------------------
// binary_message_content
//-----------------------------------------------
function binary_sms_sample($recipientAddressList) {
  
  //| Working messageContent sample of PDU sms containing content "Zusammengefügt."
  //| sent as 2 SMS segments: ("Zusammen","gefügt."). 
  //| First 6 Bytes per segment are sample UDH. See http://en.wikipedia.org/wiki/Concatenated_SMS
  
  //$messageContentSegments = array(
  //    "BQAD/AIBWnVzYW1tZW4=", // 0x05,0x00,0x03,0xfc,0x02,0x01, 0x5a,0x75,0x73,0x61,0x6d,0x6d,0x65,0x6e
  //    "BQAD/AICZ2Vmw7xndC4="  // 0x05,0x00,0x03,0xfc,0x02,0x02, 0x67,0x65,0x66,0xc3,0xbc,0x67,0x74,0x2e
  //);

  // bytewise rebuilt sample. (identical to above):
  $messageContentSegments = array(
      base64_encode( pack("c*", 0x05,0x00,0x03,0xfc,0x02,0x01, 0x5a,0x75,0x73,0x61,0x6d,0x6d,0x65,0x6e) ),
      base64_encode( pack("c*", 0x05,0x00,0x03,0xfc,0x02,0x02, 0x67,0x65,0x66,0xc3,0xbc,0x67,0x74,0x2e) )
  );
  $userDataHeaderPresent  = true; # Binary Data includes UserDataHeader for e.G.: PDU sms (Concatenation)  

  $message = new WebSmsCom_BinaryMessage($recipientAddressList, $messageContentSegments, $userDataHeaderPresent);
  
  return $message;
}
  } //--end of else
?>
Mit Zitat antworten