我正在尝试使用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\';
如何删除反斜杠??
我尝试在str_replace
和$encod
上使用stripslashes($encod)
,但它不起作用。
答案 0 :(得分:1)
我尝试解码你的base64编码字符串,它产生了相同的结果。我尝试再次编码,斜杠和所有,并产生相同的编码字符串。
问题不在于你是以某种方式从解码过程中获取未知的斜线,而是在编码字符串之前存在斜杠。
没有斜杠的相同字符串是这样的:
PD9waHAgZWNobyAianVzdCB0ZXN0IjsNCmVjaG8gJ29yIGp1c3QgdGVzdCc7ID8+
尝试解码。
我相信您的问题的真正解决方案可以在这里找到:
答案 1 :(得分:0)
我相信你在base64中编码的字符串已经在json中编码了(因为我必须用json字符串完成POST)。
Json躲避引号的方法就是你所描述的问题:
请参阅:json_encode PHP
所以这里的解决方案是首先从base64解码(base64_decode [PHP])然后从json解码(jsoN_decode()[PHP])或(JSON.parse()[JS])