pol*_*ron 2 javascript php jquery
我想知道为什么php在我删除双引号时添加反斜杠.
<input type="text" name="number" id="number" />
<input type="button" name="button" id="button" value="Button" />
Run Code Online (Sandbox Code Playgroud)
假设他们用户输入值5-1/2"并且我通过jquery的.get方法将其传递给处理页面.
$('#button').click(function(){
$.get('determine.php?number='+$('#number').val(),function(data){
$('#response').html(data);
});
});
Run Code Online (Sandbox Code Playgroud)
这是我的处理页面.
determine.php
$number = $_GET['number'];
$number = str_replace(array('"', "'"), '', $number);
echo $number;
//echos 5-1/2\
Run Code Online (Sandbox Code Playgroud)
为什么反斜杠在那里?
当你删除斜杠时它不会添加它们,当启用magic_quotes_gpc指令时它会自动在查询字符串参数中转义它们(默认情况下它是5.30之前).它确实这是一个安全预防措施,从而使数据可以在数据库中查询安全使用.您可以通过更改php.ini文件中的设置来禁用它们,请参阅http://www.php.net/manual/en/security.magicquotes.disabling.php.
您还可以使用stripslashes删除它们:
$number = str_replace(array('"', "'"), '', stripslashes($number));
Run Code Online (Sandbox Code Playgroud)
stripslashes()的一个示例是当PHP指令magic_quotes_gpc打开时(默认情况下它已启用),并且您没有将此数据插入需要转义的位置(例如数据库).例如,如果您只是直接从HTML表单输出数据.