File Manager V1.5

[SYSTEM@ROOT]: /var/www/html/
INJECT_FILE:
NEW_ENTRY:

FILE_CONTENT: sms_helper.php

<?php

/**
 * Функция для отправки SMS через SMS.RU API
 * 
 * @param string $api_id API ключ SMS.RU
 * @param string|array $to Номер телефона или массив номеров (можно указать через запятую)
 * @param string $msg Текст сообщения
 * @return array Массив с результатом отправки
 */
function sendSMS($api_id, $to, $msg) {
    // Преобразуем массив в строку через запятую, если передан массив
    if (is_array($to)) {
        $to = implode(',', $to);
    }
    
    // Подготавливаем текст сообщения для URL
    $msg_encoded = urlencode($msg);
    
    // Формируем URL запроса
    $url = "https://sms.ru/sms/send?api_id={$api_id}&to={$to}&msg={$msg_encoded}&json=1";
    
    // Выполняем запрос
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_TIMEOUT, 10);
    
    $response = curl_exec($ch);
    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    $curl_error = curl_error($ch);
    curl_close($ch);
    
    if ($curl_error) {
        return [
            'success' => false,
            'message' => 'Ошибка cURL: ' . $curl_error,
            'error' => $curl_error
        ];
    }
    
    if ($http_code !== 200) {
        return [
            'success' => false,
            'message' => 'HTTP ошибка: ' . $http_code,
            'http_code' => $http_code
        ];
    }
    
    $result = json_decode($response, true);
    
    if (json_last_error() !== JSON_ERROR_NONE) {
        return [
            'success' => false,
            'message' => 'Ошибка парсинга JSON ответа',
            'raw_response' => $response
        ];
    }
    
    // Проверяем статус ответа от SMS.RU
    if (isset($result['status']) && $result['status'] === 'OK') {
        return [
            'success' => true,
            'message' => 'SMS отправлено успешно',
            'data' => $result
        ];
    } else {
        return [
            'success' => false,
            'message' => $result['status_text'] ?? 'Неизвестная ошибка отправки SMS',
            'data' => $result
        ];
    }
}

[ KEMBALI ]