[英]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\';
如何删除反斜杠?
我尝试在$encod
和stripslashes($encod)
上使用str_replace
,但是它不起作用。
我尝试解码您的base64编码的字符串,并且产生了相同的结果。 我尝试再次对其进行编码,斜杠和所有编码,并产生了相同的编码字符串。
问题不在于您以某种方式从解码过程中获得了未知的斜杠,而是在对字符串进行编码之前就存在斜杠。
没有斜杠的相同字符串是这样的: PD9waHAgZWNobyAianVzdCB0ZXN0IjsNCmVjaG8gJ29yIGp1c3QgdGVzdCc7ID8+
尝试对其进行解码。
我相信可以在这里找到真正解决问题的方法:
我相信您在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.