sms megafon php
<?php /*
if you want to enable sms sending, then add
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/include/h7/sms.php');
and use the function
h7sms($phone, $message)
by Ivlev
*/
function h7sms($phone, $message) {
$send_message = false;
$maximum_limit = 10;
$maximum_length_message = 70;
$maximum_size_log = 1048576;
// Data Conversion
$phone = strval($phone);
$phone = preg_replace("/[+\-\s()]/", '', $phone);
$phone = preg_replace("/^8/", '7', $phone);
if (strlen($phone) !== 11) return false;
$phone = (int) $phone;
$message = htmlspecialchars(trim($message));
if (strlen($message) > $maximum_length_message) $message = mb_strimwidth($message, 0, $maximum_length_message);
$ip = $_SERVER['REMOTE_ADDR'];
$date_log = date("d.m.Y H:i.s");
// Check limit
foreach ([
$_SERVER['DOCUMENT_ROOT']."/upload/sms_limit2/$phone.txt",
$_SERVER['DOCUMENT_ROOT']."/upload/sms_limit2/$ip.txt"
] as $i => $url) {
$limit = 1;
if (file_exists($url)) $limit += (int) file_get_contents($url);
if ($limit > $maximum_limit) return false;
$file = fopen($url, "w");
fwrite($file, $limit);
fclose($file);
}
// Sending request
if ($send_message) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, 'https://a2p-api.megalabs.ru/sms/v1/sms');
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_USERPWD, 'LOGIN1:PASSWORD1');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode(array(
'from' => 'LOGIN2',
'to' => (int) $phone,
'message' => $message,
)));
if (curl_errno($curl) !== 0) return false;
$result = curl_exec($curl);
curl_close($curl);
} else {
$result = 'disabled send message';
}
// Add log
$log_text = "\n@|$date_log|$ip|$phone|$message|$result"; // \n@|
$url = $_SERVER['DOCUMENT_ROOT'].'/upload/sms_log_full/log.php';
if (file_exists($url)) {
if (filesize($url) > $maximum_size_log) {
rename($url, $_SERVER['DOCUMENT_ROOT'].'/upload/sms_log_full/log_'.date("Ymd_His").'.php');
$log_text = "<?php return; ?>$log_text";
}
} else {
$log_text = "<?php return; ?>$log_text";
}
$file = fopen($url, "a");
fwrite($file, $log_text);
fclose($file);
return true;
}