使用PHP检索textarea内容。获得添加的反斜杠

时间:2010-10-21 14:18:00

标签: php jquery textarea

我正在构建一个Web应用程序,它可以让用户更容易为给定的实用程序生成正确的XML。

作为一个简单的测试,我创建了一个包含生成的XML的textarea。然后我创建了一个带有jQuery处理程序的按钮(<input type="button">),该处理程序将文本区域的内容发送到我的PHP应用程序,该应用程序将按摩数据并将各种项目放入。我使用将数据发送到PHP的代码如下(假设'this'是一个复杂的对象,而doImport()是该对象中的一个函数......这是正常工作的):

doImport :  function () {
  var $ = this.jQuery,
   js = this,
   xml = $('textarea#xmlInput').val();

  $.post(this.selfRef, {
   import : xml
  }, function (json) {
   if (json.status) {
    $('table#tableArea tbody').html(json.tableInfo);
   } else {
    alert("Error occurred:\n" + json.message);
   }
  }, 'json');
 },

我可以使用Firebug检查数据,并且我正确地从文本区域获取XML数据。我希望我的PHP应用程序能够生成JSON结果。

接下来,在PHP方面,当我使用$_REQUEST['import']检索POST信息时,我得到以下内容:

<?xml version=\"1.0\"?> [...]

换句话说,双引号被反斜杠转义。

我尝试逐字符检查字符串,我确实看到$_REQUEST['import']返回的字符串中的反斜杠。

我知道我可能会忽略一些非常简单的事情,但对于我的生活,我无法弄清楚我做错了什么。

此致

lar3ry

1 个答案:

答案 0 :(得分:4)

您的PHP安装已启用“magic_quotes”。这是很久以前推出的“安全”功能。 (真的只会导致这样的问题恕我直言)。

我相信你必须在php.ini中关闭它(如果你使用linux,通常可以在/ etc中找到)。变化

magic_quotes_gpc = On 

magic_quotes_gpc = Off

如果不起作用,您可以在输入中使用stripslashes()功能。

$_POST['import'] = stripslashes($_POST['import']);

希望有所帮助!