문자열을 int 값으로 인코딩하는 PHP 함수가 있습니까? 나중에 키없이 문자열을 다시 디코딩 할 수 있습니까?PHP : 아주 간단한 인 코드/디코드 문자열
답변
물론 가능합니다. convert strings to numbers 또는 그 반대로도 가능합니다. 고려 : 또한 settype()와 type casting을 할 수
$a = "" + 1
gettype($a) // integer
$b = "$a"
gettype($b) // string
.
내가 오해하고 임의의 문자열을 인코딩하려는 경우 base64_encode() 및 bas64_decode()을 사용하는 것이 좋습니다. 기본 64 문자열 표현을 기본 10 정수로 변환하려면 base_convert()을 사용하면됩니다.
int는 플랫폼에 따라 4 또는 8 바이트를 가지며 문자열의 각 문자는 1 바이트 (또는 인코딩에 따라 다름)입니다. 따라서 매우 작은 문자열 만 정수로 인코딩 할 수 있습니다. 기본적으로이 질문에 대한 대답은 다음과 같습니다.
수행하고자하는 작업은 무엇입니까?
정수보다 MAX_INT에서 가능한 문자열 조합이 훨씬 많기 때문에 의심 스럽습니다.
정수 여야합니까?
아닙니다. 숫자와 소문자는 괜찮습니다. 난 단지 인코딩 된 문자열을 가능한 짧게하고 싶습니다. – Alex
나는 당신이하고 싶은 생각이 실제로하고 싶은 것이 아니라고 확신합니다. :-) 이것은 바보 같은 생각처럼 들립니다. 다른 사용자가 전에 물었던 것처럼 :) 당신은 이것을 위해 무엇을 필요로합니까? 당신의 의도는 무엇입니까?
이제는 숫자와 a-z 문자를 사용할 수 있다고 언급 했으므로 하나의 제안이 있습니다. 개별 문자의 순서 값을 반복하여 두 자리 16 진수로 표시 할 수 있습니다. 그런 다음이 16 진수를 개별 문자의 서수 값으로 다시 변환 할 수 있습니다. 인코딩 할 문자의 종류를 모를 경우 문자 당 4자를 사용해야 할 수도 있습니다 (예 : Peter
문자열은 00700065007400650072가됩니다). 음 ... 그걸 가지고 재미있게 지내며, 나는 아직도 실제로 볼 수 없습니다. 당신이하고있는 일을하기위한 근거.
나는 다양한 문자가있는 문자열을 가지고 있으며 숫자 만 포함하는 무언가 (그리고 아마도 z 문자)를 인코딩하려고합니다. 인코딩 된 문자열은 요소에 html id 태그로 사용됩니다. – Alex
az 편지가 포함될 수 있다는 것을 반영하여 내 답변을 편집했습니다. –
op 각 문자의 서수 값을 통해 두 자리 16 진수로 표시하십시오. 그런 다음이 16 진수를 개별 문자의 서수 값으로 다시 변환 할 수 있습니다. 어떤 종류의 문자를 인코딩하려고하는지 모를 것입니다. 문자 당 4자를 사용해야 할 수도 있습니다 (예 : String Peter는 00700065007400650072가 될 것입니다). 음 ... 그걸 가지고 재미있게 지내고, 나는 아직도 정말로 보지 않습니다.
PHP에는 기능이 없지만 최근에 PHP에서 문자열을 암호화하고 해독하는 클래스를 작성했습니다. 다음 주소에서보실 수 있습니다 : https://github.com/Lars-/PHP-Security-class
질문은 암호화에 관한 것이 아니므로 사용자는 아무런 키없이 문자열을 인코딩/해독 할 수 있기를 원합니다. **. – Artemix
현재 세션에서만 유효해야합니까, 영원히 또는 다른 세션에서 유효해야합니까? 분명히 세계적으로 그리고 영원히 그것을 할 수는 없지만, 제한된 상황에서 가능할 수 있습니다. –
아니요. –
왜 필요한가요? –