繁体   English   中英

在base64中转义编码php

[英]Escaping in base64 encode php

我正在尝试使用php中的base64对脚本进行编码,但是为什么我的代码会自动在单引号'或双引号"处添加反斜杠\\
这是我用来编码的代码

$encode = $_POST ['encode'];
$encod = base64_encode ($encode);
echo "<form action='?' method='post'><textarea name='encode'></textarea><input type='submit' value='Encode'></form><textarea> ".$encod." </textarea>";

我在上面使用代码,然后尝试对该脚本进行编码:

echo "just test";
echo 'or just test'; 

和结果

PD9waHAgZWNobyBcImp1c3QgdGVzdFwiOw0KZWNobyBcJ29yIGp1c3QgdGVzdFwnOyA / PG ==

当我解码时,结果

echo \"just test\";
echo \'or just test\';

如何删除反斜杠?

我尝试在$encodstripslashes($encod)上使用str_replace ,但是它不起作用。

我尝试解码您的base64编码的字符串,并且产生了相同的结果。 我尝试再次对其进行编码,斜杠和所有编码,并产生了相同的编码字符串。

问题不在于您以某种方式从解码过程中获得了未知的斜杠,而是在对字符串进行编码之前就存在斜杠。

没有斜杠的相同字符串是这样的: PD9waHAgZWNobyAianVzdCB0ZXN0IjsNCmVjaG8gJ29yIGp1c3QgdGVzdCc7ID8+

尝试对其进行解码。

我相信可以在这里找到真正解决问题的方法:

为什么$ _POST变量在PHP中被转义?

我相信您在base64中编码的字符串已经在json中编码了(因为我认为POST必须使用json字符串完成)。

Json逃避引号的方式就是您所描述的问题:

请参阅: json_encode PHP

因此,这里的解决方案是先从base64(base64_decode [PHP])解码,然后从json(jsoN_decode()[PHP])或(JSON.parse()[JS])解码

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM