как перевести команду с кода python на php?

у меня такой вопрос, у меня есть код который я сделал на пайтоне добавление пользователей в беседу, он работает, как можно сделать такой же код чтобы он работал только уже на php

if msg_lower[1:] == 'addadmin' or msg_lower[1:].startswith('addadmin '):
    try:
        user_id = re.findall(r'\[id(\d*)\|.*]', msg_orig)[0]
        local = msg.split(' ')
        reason = ' '.join(map(str, local[2:999]))

        user = authorize.method("users.get", {"user_ids": user_id})
        fullname = user[0]['first_name'] + ' ' + user[0]['last_name']

        user1 = authorize.method("users.get", {"user_ids": uid, "name_case": 'gen'})
        fullname1 = user1[0]['first_name'] + ' ' + user1[0]['last_name']

        if not reason:
            write_message(sender, "❌ | Нет причины")
        else:
            r = requests.get("https://api.vk.com/method/messages.addChatUser", params={
                                "chat_id": chat_id,
                                "user_id": user_id,
                                "access_token": API_KEY_FIRENDS,
                                "v": 5.131
                            }).json()
            status = add_beseda[r["response"]]
            write_message(sender, f' Редактор [id{user_id}|{fullname}] был добавлен в беседу по запросу [id|{fullname1}]\nПричина: {reason.capitalize()}' )
     except:
         write_message(sender, "❌ | Используйте /adadmin [id пользователя)] [reason]") ``


Ответы (1 шт):

Автор решения: Александр Маринов

Перевод данного кода на PHP потребует использования cURL или другой библиотеки для выполнения HTTP-запросов, так как PHP не имеет встроенной поддержки для этого, в отличие от Python. Кроме того, вам потребуется использовать сессии или другой механизм для хранения токена авторизации и других данных между запросами. Вот примерный перевод на PHP:

// Предполагается, что $msg_lower и $msg_orig уже определены и содержат текст сообщения
if (substr($msg_lower, 1) == 'addadmin' || strpos(substr($msg_lower, 1), 'addadmin ') === 0) {
    try {
        preg_match('/\[id(\d*)\|.*\]/', $msg_orig, $matches);
        $user_id = $matches[1];
        $local = explode(' ', $msg);
        $reason = implode(' ', array_slice($local, 2));

        // Предполагается, что функция authorize_method() уже определена и возвращает результаты вызова API
        $user = authorize_method("users.get", array("user_ids" => $user_id));
        $fullname = $user[0]['first_name'] . ' ' . $user[0]['last_name'];

        $user1 = authorize_method("users.get", array("user_ids" => $uid, "name_case" => 'gen'));
        $fullname1 = $user1[0]['first_name'] . ' ' . $user1[0]['last_name'];

        if (!$reason) {
            write_message($sender, "❌ | Нет причины");
        } else {
            $params = array(
                "chat_id" => $chat_id,
                "user_id" => $user_id,
                "access_token" => API_KEY_FIRENDS,
                "v" => "5.131"
            );
            $url = "https://api.vk.com/method/messages.addChatUser?" . http_build_query($params);
            $r = json_decode(file_get_contents($url), true);
            $status = $add_beseda[$r["response"]];
            write_message($sender, "Редактор [id$user_id|$fullname] был добавлен в беседу по запросу [id$uid|$fullname1]\nПричина: " . ucfirst($reason));
        }
    } catch (Exception $e) {
        write_message($sender, "❌ | Используйте /adadmin [id пользователя)] [reason]");
    }
}

// Функция для отправки сообщений через VK API
function write_message($sender, $message) {
    // Здесь должен быть ваш код для отправки сообщения через VK API
}

// Функция для авторизации и выполнения методов VK API
function authorize_method($method_name, $params) {
    // Здесь должен быть ваш код для авторизации и выполнения методов VK API
}
?>

Обратите внимание, что вам нужно будет определить функции write_message и authorize_method для отправки сообщений и выполнения методов VK API соответственно. Кроме того, вам нужно будет обработать исключения и ошибки API более тщательно, чем это показано в примере выше.

→ Ссылка