2017-11-12 2 views
-1

내가 자바 스크립트로 PHP 함수를 변환하려고에 PHP 할당을 변환 시도,하지만 난 코드의 다음 줄을 읽을 캔트 :는 자바 스크립트

$sha_string .= "$key=$value$ipn_passphrase"; 

$sha_sign = strtoupper(hash("sha512", $sha_string)); 

전체 기능 :

function digistore_signature($ipn_passphrase, $array) 
{ 
    unset($array[ 'sha_sign' ]); 

    $keys = array_keys($array); 
    sort($keys); 

    $sha_string = ""; 

    foreach ($keys as $key) 
    { 
     $value = html_entity_decode($array[ $key ]); 

     $is_empty = !isset($value) || $value === "" || $value === false; 

     if ($is_empty) 
     { 
      continue; 
     } 

     $sha_string .= "$key=$value$ipn_passphrase"; 
    } 

    $sha_sign = strtoupper(hash("sha512", $sha_string)); 

    return $sha_sign; 
} 

$ 배열은 POST 요청의 본문입니다. $ passphrase는 문자열입니다.

+0

'이해'와 같이 '읽음'을 의미합니까? '$ key'를'key','$ value'를'123','$ ipn_passphrase'를'pass'라고합시다. 이런 식으로'$ sha_string'은 변수가 파싱되어 문자열로 변환되기 때문에''key = 123pass ''입니다. 그런 다음'$ sha_sign'은 그 변수를 SHA-512 알고리즘을 사용하여 암호화 한 다음 대문자로 변환합니다. – Zeke

답변

1

.= PHP는 간단한 연결입니다. +=의 프로그래밍 개념과 비슷합니다. 그것은 예를 들어

<?php 

$a = "hello"; 
$a .= " "; //now $a = "hello " 
$a .= "world"; // now $a = "hello world" 

"$key=$value$ipn_passphrase"; PHP의 현재 위치에서 변수 대체를 호출하여 이해하기 쉽다. PHP Doc에서 자세한 내용을 확인할 수 있습니다. 값 $key, $values$ipn_passphrase을 해당 변수의 값으로 적절하게 바꾸고 새로운 문자열 변수 $sha_sign을 만들면 간단하게 간주 할 수 있습니다.

$sha_sign = strtoupper(hash("sha512", $sha_string));는 기능 hash()에 알고리즘 sha512$sha_string을 통과하고 다시 $sha_string 변수에 결과를 저장하는 간단한 문입니다.

+0

나는 그 자리 변수 치환에 관해서는 정말로 알지 못한다 : ( 그리고 워드 프로세서는 나에게 점점 미치지 못한다 ... – Paul

+1

나는 나의 대답을 수정했다. – Fawzan