PHP-ге Python-да жұмыс істеу

Бұл функцияны Python-дан PHP-ге қалай аударуға болатынын біле ме?

Мен айналасында болдым, бірақ Python-ның кодында нәрселер бар.

This function is used in the follow context: http://www.dmcloud.net/doc/api/general.html#authentication

def normalize(input=None):
output = ''

if type(input) in (list, tuple):
    for element in input:
        if type(element) in (dict, list, tuple):
            element = normalize(element)
        output += str(element)

elif type(input) is dict:
    keys = input.keys()
    keys.sort()
    for key in keys:
        element = input[key]
        if type(element) in (dict, list, tuple):
            element = normalize(element)
        output += '%s%s' % (key, element)

else:
    output = str(input)

return output

Рақмет сізге!

0
Бұл функцияның қалай қолданылатындығын және оны PHP-де қалай пайдалануды қалай жоспарлай аласыз? Тікелей аударылмайтын тілге тән python мүмкіндіктерін пайдаланады.
қосылды автор George P, көзі
Ол json мазмұнын рекурсивті мәтінге бос орынсыз қайта түрлендіреді. Мысалды қарап шығыңыз: dmcloud.net/doc/api/general.html#authentication
қосылды автор PGZ, көзі

1 жауаптар

php сөздіктер мен тізімдер арасында айырмашылықтар жоқ, сондықтан:

function normalize($input=null) {
  if (! is_array($input)) {
    return strval($input);
  }

  $res = '';
  $keys = array_keys($input);
  sort($keys);
  foreach ($keys as $k) {
    if (!is_int($k)) $res .= $k;
    $res .= normalize($v);
  }
  return $res;
}

Айта кету керек, бұл сериализация сілкіндіреді, өйткені ол бүтін сандарды саннан ажырата алмайды. YOu шынымен JSON пайдалану керек ( PHP және Python ), бұл тілге тәуелсіз, адам оқылатын серияландыру пішімі.

Бұл жолды түпнұсқалық растама үшін пайдалану орнына, JSON сериализациясы бойынша хэш пайдаланылуы керек.

2
қосылды
@PGZ Мен мұны көрдім және бұл жаман ойдың қалай болғаны туралы параграфқа қосылды. Бұл php-код сіз үшін жұмыс істей ме?
қосылды автор phihag, көзі
@PGZ Кешіріңіз, түсінбеймін. JSON коды арқылы сіз нені білдіреді? JSON сериализациясы? Кіріс құрылымы Айтуынша, Python коды де өзгермейді.
қосылды автор phihag, көзі
Рахмет. Сілтемімді бастапқы жазбада қостым. Мақсат аутентификация мақсаттары үшін JSON оқылатын пішімін бұзады.
қосылды автор PGZ, көзі
Бұл шынымен JSON кодексіне өзгерістер енгізбейді.
қосылды автор PGZ, көзі
Егер мен «қоңырау» сияқты JSON кодексінде орналассам: «media.get_assets», «args»: {«a»: «b»}, бұл оған әсер етпейді.
қосылды автор PGZ, көзі