Avatar billede nemlig Professor
25. maj 2017 - 12:35 Der er 2 kommentarer

Hjælp til array

Hejsa.

Jeg anvender CPSMS til at sende mails, og har fundet noget hjælp til Curl i en gammel tråd her på Eksperten, https://www.computerworld.dk/eksperten/spm/934193.
Jeg har den udfordring, at jeg skal sende til flere numre, men kan ikke gennemskue, hvordan jeg får det med i arrayet.
Jeg kan selvfølgelig køre programkoden i en løkke, men da det er muligt at sende flere numre afsted i samme streng, vil jeg helst det.

Hvis fx. 2 mobilnumre, så skal denne del-streng sendes med:
&recipient[]=22222222&recipient[]=33333333



Programkoden med 1 mobilnummer:

$settings["username"] = $row7["userGateway"];
$settings["password"] = $row7["passwordGateway"];
$settings["utf8"] = "1";

$input["from"]         = "Adgang til lejren";
$input["message"]     = $row7["smsTekstEfter"];
$input["recipient[]"] = "45".$row2["mobilnr1"];
$input["timestamp"] = $afsendTid;

$posts = array_merge($settings, $input);
foreach($posts as $key => $value)
    $tmp[] = $key."=".$value;
   
$postdata = implode("&", $tmp);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.cpsms.dk/sms/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);

$content = curl_exec($ch);

if(strstr($content, "<succes>")) { echo "hurra"; }
Avatar billede nemlig Professor
25. maj 2017 - 15:03 #1
Jeg har lavet en midlertidig løsning, hvor jeg tilføjer del-strengen til $postdata.
......
$postdata = implode("&", $tmp);
if($row['mobilnr1']) {
    $postdata .= "&recipient[]=45".$row["mobilnr1"];
}
if($row['mobilnr2']) {
    $postdata .= "&recipient[]=45".$row["mobilnr2"];
}


Det fungerer, men måske ikke så elegant.
Avatar billede Zochko Juniormester
13. juni 2017 - 21:23 #2

$settings["username"] =  $row7["userGateway"];
$settings["password"] =  $row7["passwordGateway"];
$settings["utf8"] = "1";

// Removed - $input["recipient[]"] = "45".$row2["mobilnr1"];
$input["from"]        = "Adgang til lejren";
$input["message"]    = $row7["smsTekstEfter"];
$input["timestamp"] =  $afsendTid;

$posts = array_merge($settings, $input);
foreach($posts as $key => $value) {
    $tmp[] = $key."=".$value;
}

// Added code
$mobileNumbers = array();

// Collecting all of the mobile numbers from $row2 and storing them for insertion to $tmp later.
foreach($row2 as $mobileNumberKey => $mobileNumber) {
    array_push($mobileNumbers, "45".$mobileNumber);
}

foreach($mobileNumbers as $value) {
    $tmp[] = 'recipient[]=' . $value;
}

$postdata = implode("&", $tmp);

// Your result for testing
echo '<pre>';
print_r($postdata);
echo '</pre>';



Jeg har forsøgt at lave lidt om på det, da det ser ud til du altid får dine telefonnumre gennem $row2?
Der er forskellige måder at gøre det på men, den hurtige er at bruge et andet array med numrene, og så tilføje dem senere.

Ellers skal der ikke så meget til for at lave den lille del om.

Håber det hjælper dig :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester