Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Microsoft Office и VBA > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 26.07.2017, 15:01   #1
Metrologik
Пользователь
 
Регистрация: 19.10.2014
Сообщений: 11
Репутация: 10
По умолчанию Как переделать код PHP на VBA?

Добрый день! Как переделать код PHP под VBA?

Код:
function Signature( $params, $api_key )
{
$params = array(
    'timestamp' => '1501052684',
    'login'     => 'YourLogin',
    'phone'     => '0',
    'sender'    => 'smstest'
    'text'      => 'Long text'
);
 
//сортировка по алфавиту
    ksort( $params );
    reset( $params );
  
//преобразовывание результата сначала в строку, потом в md хеш
    return md5( implode( $params ) . $api_key );
}
Metrologik вне форума   Ответить с цитированием
Старый 26.07.2017, 15:54   #2
kuklp
Профессионал
 
Регистрация: 02.05.2010
Адрес: Украина, Днепропетровск.
Сообщений: 1,390
Репутация: 152

icq: 4190413
skype: pilipnik
По умолчанию

Кросс:
http://www.planetaexcel.ru/forum/ind...-kod-php-v-vba
__________________
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728
kuklp вне форума   Ответить с цитированием
Старый 26.07.2017, 16:07   #3
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 14,697
Репутация: 2631
По умолчанию

Учитывая что здесь только задание массива и нет реализации остальных функций, то никак.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x на форуме   Ответить с цитированием
Старый 31.07.2017, 04:02   #4
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Адрес: Россия, Урал
Сообщений: 6,838
Репутация: 1220

skype: ExcelVBA.ru
По умолчанию

Примерно так получится:
Код:
Function CreateURL(ByVal URL$, ParamArray params()) As String
    On Error Resume Next
    Dim dic As New Dictionary, i&, j&, tmp$, login$, APIkey$, arr, signature$, LoginAndKey$

    dic.Add "timestamp", GetTimestamp
    dic.Add "return", "xml"

    If Not IsMissing(params) Then
        For i = LBound(params) To UBound(params)
            If params(i) Like "?*=?*" Then dic.Add Split(params(i), "=")(0), Split(params(i), "=", 2)(1)
        Next i
    End If

    ' сначала надо проверить, заданы ли логин и API ключ
    If dic.Exists("LoginAndKey") Then        ' на случай проверки логина-ключа
        login$ = Split(dic.Item("LoginAndKey"), "|")(0)
        APIkey$ = Split(dic.Item("LoginAndKey"), "|", 2)(1)
        dic.Remove "LoginAndKey"
    Else        ' берем ранее сохранённые настройки
        login$ = Trim(SETT.GetText("TextBox_Login"))
        APIkey$ = Trim(SETT.GetText("TextBox_APIkey"))
    End If
    dic.Add "login", login$

    ' сортировка параметров
    arr = dic.Keys
    For i = 0 To UBound(arr)
        For j = 0 To UBound(arr) - 1
            If arr(j) > arr(j + 1) Then tmp$ = arr(j): arr(j) = arr(j + 1): arr(j + 1) = tmp
        Next j
    Next i

    ' формируем строку из значений параметров
    For i = 0 To UBound(arr)
        signature$ = signature$ & dic.Item(CStr(arr(i)))
    Next i
    ' Debug.Print signature$ & APIkey$
    'signature$ = GetHash(signature$ & APIkey$) ' old version - sometimes it doesn't work
    signature$ = Calculate_MD5(signature$ & APIkey$)        ' new version

    ' Debug.Print signature$
    dic.Add "signature", signature$

    Dim key, parameters$, encode As Boolean
    For Each key In dic.Keys
        encode = InStr(1, "login|signature|timestamp|return|phone|sender", key, vbTextCompare) = 0
        parameters$ = parameters$ & IIf(parameters$ = "", "?", "&") & key & "=" & _
                      IIf(encode, URL_EncodeAll(dic.Item(key)), dic.Item(key))
    Next
    CreateURL = PROTOCOL & URL$ & parameters$
    Set dic = Nothing
End Function
EducatedFool вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как переделать код? - C (СИ) username12 Общие вопросы C/C++ 2 18.12.2015 18:07
Как переделать код Дмитрий_dz Общие вопросы Delphi 3 17.12.2012 01:50
как переделать код delphi на php delphihelp Помощь студентам 1 17.03.2012 11:34
как переделать код макроса омарат Microsoft Office Excel 1 25.05.2010 20:57
Как переделать код? P®o©omp@s Помощь студентам 2 26.10.2009 20:21


16:43.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.