7

base64_encode()とbase64_decode()を使用しようとしていますが、カスタムアルファベットを使用しています。デフォルトのアルファベットは次のとおりです。

"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"

私が使いたいと言う:

"ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210+/" 

インターネットでクラスを見つけましたが、期待どおりに機能しません。これを可能な限り簡単に実現する方法について何かアイデアはありますか?

4

2 に答える 2

17

超簡単、strtr箱から出してこれを行うことができます:

$default = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
$custom  = "ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210+/";

$encoded = strtr(base64_encode($input), $default, $custom);
于 2012-11-16T13:51:54.757 に答える
2

上で定義したカスタムエンコーディングに加えて、カスタムアルファベットでデコードするには、次の操作を実行できます。

    $custom = 'ZYXWVUTSRQPONMLKJIHGFEDCBAzyxwvutsrqponmlkjihgfedcba9876543210+/';
    $default = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
    $decoded = base64_decode(strtr($input, $custom, $default));
于 2017-08-30T15:38:46.140 に答える