2

文字列を int 値にエンコードする PHP 関数はありますか?後でキーなしで文字列にデコードできますか?

4

6 に答える 6

5

もちろん、文字列を数値に、またはその逆に変換できます。検討:

$a = "" + 1
gettype($a) // integer
$b = "$a"
gettype($b) // string

settype()を使用して型キャストを行うこともできます。

私が誤解していて、任意の文字列をエンコードしたい場合は、base64_encode()bas64_decode( ) の使用を検討してください。基数 64 の文字列表現を基数 10 の整数に変換する場合は、単純にbase_convert()を使用します。

于 2010-06-30T13:15:50.240 に答える
2

int は、プラットフォームに応じて 4 バイトまたは 8 バイトであり、文字列内の各文字は 1 バイト (エンコーディングによってはそれ以上) です。したがって、非常に小さな文字列のみを整数にエンコードできます。これは、基本的に質問に対する答えになります。いいえ。

何を達成したいですか?

于 2010-06-30T00:03:19.787 に答える
1

あなたがやりたいと思っていることは、実際にはあなたがやりたいことではないと私は確信しています。:-)これはばかげた考えのように聞こえます。別のユーザーが以前に尋ねたように:)これは何のために必要ですか?あなたの意図は何ですか?

数字とaz文字が受け入れられるとおっしゃったので、1つの提案があります。個々の文字の序数をループして、2桁の16進数として表示できます。次に、これらの16進数を個々の文字の序数に戻すことができます。エンコードしようとしている文字の種類がわからない場合は、1文字あたり4文字を使用する必要があります(たとえば、文字列Peterは00700065007400650072になります)。あなたがしていることをするために。

于 2010-06-30T00:12:24.740 に答える
1

MAX_INT 内の整数よりもはるかに多くの可能な文字列の組み合わせがあるため、そうではないと思います。

整数である必要がありますか?

于 2010-06-30T00:04:12.403 に答える
1

個々の文字の序数値を演算し、それを 2 桁の 16 進数として表示します。その後、これらの 16 進数を個々の文字の序数値に戻すことができます。エンコードしようとしている文字の種類がわかりません。おそらく、1 文字あたり 4 文字を使用する必要があります (たとえば、String Peter は 00700065007400650072 になります)。

于 2012-04-01T14:18:31.943 に答える