API
Ik ben bezig met een MSN bot die kan SMS'en. Alles wordt gescript in PHP (API).
Als je wilt gaan SMS'en moet je in je MSN gesprek SMS typen, daarna de telefoonnummer en vervolgens het bericht.
Bijvoorbeeld:
SMS 0612345678 Heeeyy alles goed?.
Ik heb alleen geen idee hoe ik het script eruit moet zien. Iets met explode ofzoiets.
Bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Nathan K
Hoe groot is je portemonnee? Want zo te horen weet je er weinig vanaf.
Ik heb even een duw in de juiste richting nodig.
Een oplossing voor je probleem is:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
$sString = 'SMS nummer en het bericht';
$aExplode = explode(' ', $string);
$code = $aExplode[0];
$nummer = $aExplode[1];
$bericht = implode(' ', array_slice($aExplode,2));
?>
$sString = 'SMS nummer en het bericht';
$aExplode = explode(' ', $string);
$code = $aExplode[0];
$nummer = $aExplode[1];
$bericht = implode(' ', array_slice($aExplode,2));
?>
Maar een goede regex is mooier, en er is vast wel iemand hier die je daarmee kan helpen.
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
preg_match('/SMS\s(?P<telnr>[0-9]{10})\s(?P<bericht>.*)/i' , $sText, $aGevonden);
$sBericht = $aGevonden['bericht'];
$sTelNr = $aGevonden['telnr'];
echo $sBericht;
echo $sTelNr;
?>
preg_match('/SMS\s(?P<telnr>[0-9]{10})\s(?P<bericht>.*)/i' , $sText, $aGevonden);
$sBericht = $aGevonden['bericht'];
$sTelNr = $aGevonden['telnr'];
echo $sBericht;
echo $sTelNr;
?>
ongeveer ;)
edit: miste een '\s', werkt iig wel.
Gewijzigd op 01/01/1970 01:00:00 door Satsume
Ik bedoelde echter hoe ik mijn systeem moet "vertellen" dat alle berichten die met SMS beginnen gesmst moeten worden.
(Alleen het if regel is wat ik nodig heb)
Bedankt!
Gewijzigd op 01/01/1970 01:00:00 door Nathan K
Volgens mij heeft Satsume dat al voor je gemaakt... indien die $sBericht en $sTelNr goed gevuld worden kan je gaan smsen (wel even het telefoonnummer controleren, en het aantal tekens van het bericht).
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$sPrefix1 = '\+316\-';
$sPrefix2 = '06';
$sPrefix3 = '06\-';
$sRegex = '/^SMS\s('.$sPrefix1.'|'.$sPrefix2.'|'.$sPrefix3.')(?P<telnr>[0-9]{8})\s(?P<bericht>.*)/i';
if(preg_match($sRegex , $sText, $aGevonden))
{
$sBericht = $aGevonden['bericht'];
$sTelNr = $aGevonden['telnr'];
// Hier de code om $sBericht te SMS-en naar $sTelNr
// LET OP: $sTelNr bevat alleen de 8 cijfers na de 06-
// Bijv.: 12345678 in 06-12345678
}
else
{
// Geen sms dus wat anders doen denk ik? ;)
}
?>
$sPrefix1 = '\+316\-';
$sPrefix2 = '06';
$sPrefix3 = '06\-';
$sRegex = '/^SMS\s('.$sPrefix1.'|'.$sPrefix2.'|'.$sPrefix3.')(?P<telnr>[0-9]{8})\s(?P<bericht>.*)/i';
if(preg_match($sRegex , $sText, $aGevonden))
{
$sBericht = $aGevonden['bericht'];
$sTelNr = $aGevonden['telnr'];
// Hier de code om $sBericht te SMS-en naar $sTelNr
// LET OP: $sTelNr bevat alleen de 8 cijfers na de 06-
// Bijv.: 12345678 in 06-12345678
}
else
{
// Geen sms dus wat anders doen denk ik? ;)
}
?>
matched alleen op nederlandse nummers, als bonus heb ik je ook de regex gegeven voor +316-12345678 en 06-12345678
De rest is aan jou ;)
edit:
Gewijzigd op 01/01/1970 01:00:00 door Satsume