如何在 PHP 中编码不带斜线的 base_64?

How to encode base_64 without slash in PHP?

原始字符串:

$string = "Home/Gallery/Images/Mountains";

然后我把这个字符串编码成base64_encode():

echo base64_encode($string);

输出:

SG9tZS9HYWxsZXJ5L0ltYWdlcy9Nb3VudGFpbnM=

但是我想显示这个输出:

SG9tZS9H/YWxsZXJ5L0lt/YWdlcy9Nb3V/udGFpbnM=


看看斜线

意味着我不想 base64_encode() 从不编码斜杠“/”并以原始形式显示斜杠,但其他字符串总是转换为 base64_encode()

这里有人可以回答我,请告诉我如何解码?

(抱歉英语不好)

您可以拆分它并使用单个部分进行编码。您不能排除任何字符。

Note, you will gain some extra padding bytes!

$string = "Home/Gallery/Images/Mountains";

echo join('/', array_map(fn($v) => base64_encode($v), explode('/', $string)));

SG9tZQ==/R2FsbGVyeQ==/SW1hZ2Vz/TW91bnRhaW5z