2010-10-21 71 views
1

我正在構建一個Web應用程序,該應用程序可以讓用戶更容易爲給定的實用程序生成正確的XML。使用PHP檢索textarea內容。獲取添加的反斜槓

作爲一個簡單的測試,我創建了一個包含生成的XML的textarea。然後我用jQuery處理程序創建了一個按鈕(<input type="button">),該處理程序將文本區域的內容發送到我的PHP應用程序,該應用程序將按摩數據並將各個項目放入一個。我使用的數據發送到PHP的代碼如下(假設「這個」是一個複雜的對象,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']自檢信息,我發現了以下內容:

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

換句話說,雙引號被反斜槓轉義。

我試着檢查字符串的字符,我確實看到由$_REQUEST['import']返回的字符串中的反斜槓。

我知道我可能忽視了一件極其簡單的事情,但對於我的生活,我無法弄清楚我做錯了什麼。

問候,

lar3ry

+1

請添加明智的問題標題。指定主題/語言是通過設置標籤完成的。 :) – 2010-10-21 14:23:29

回答

4

PHP安裝有 「magic_quotes的」 開啓。這是很久以前推出的一個「安全」功能。 (真的這只是導致這樣的問題,恕我直言)。

我相信你必須在php.ini中關閉它(通常在/ etc中找到,如果你使用的是Linux)。更改

magic_quotes_gpc = On 

magic_quotes_gpc = Off 

如果不工作,你可以使用stripslashes()功能您的輸入。

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

希望有幫助!

+0

魔術引號是罪魁禍首。謝謝! – lar3ry 2010-10-21 14:39:29