2011-04-27 48 views
1

我有一個返回的HTML代碼串的jQuery插件的功能,使用PHP Markdown解析:防止PHP自動轉義返回的字符串?

function awesome_function() { 
    $html = Markdown('# Hello World!'); 
    return $html; 
} 

...但PHP(5.3.2)返回此:

"<h1>Hello World!<\/h1>\n" 

。 ..而不是我想要的,這是這樣的:

<h1>Hello World!</h1> 

如何獲得它返回非轉義的HTML值?將return更改爲echo的作品,但我有return返回函數的狀態(true | false | null),我不想。


編輯:不知道,如果是相關的,但我意識到,我也許應該提到的是我的職責是爲中類的公共功能,例如:

class Awesome { 
    public function awesome_function() { /* ... */ } 
} 

對於@fredrick:

$('.edit').editable('/controllers/awesome_controller.php', { 
    id: 'identifier', 
    name: 'content', 
    submitdata: { action: 'awesome_function' }, 
    submit: 'Ok', 
    cancel: 'Cancel', 
    loadurl: '/controllers/awesome_controller.php', 
    loaddata: { action: 'load_original_markdown' } 
}); 
+0

你在做什麼惠白返回值?你只是回聲它:echo awesome_function();並添加了斜槓? – fredrik 2011-04-27 17:39:50

+0

它返回一個jQuery插件的html,在頁面上注入內容。我正在使用它與這個插件:http://www.appelsiini.net/projects/jeditable – neezer 2011-04-27 17:46:31

+0

好的,但代碼看你插入awesome_function()到你的js/html? – fredrik 2011-04-27 18:19:18

回答

0

我們想通了,你有這樣的事情在你的代碼:

$awesome = new Awesome(); 
echo json_encode($awesome->awesome_function()); 

json_encode會將斜線添加到輸出中,當您回聲而不是從awesome_function返回時,兩個值將會是ec hoed,HTML以及awesome_function(true | false | null)的json_encoded響應。

0

這可能與魔術引號 - 你可以讀到這裏http://php.net/manual/en/security.magicquotes.php

+0

我禁用了magic_quotes('php_file_runtime ='關閉'在我的php.ini文件中,並且phpconfig()確認它關閉),問題仍然存在。 – neezer 2011-04-27 17:34:12

0

嘗試使用stripslashes()使用後Markdown

function awesome_function() { 
    $html = Markdown('# Hello World!'); 
    $html = stripslashes($html); 
    return $html; 
} 

讀到它在這裏: http://php.net/manual/en/function.stripslashes.php

+1

Markdown不添加斜線,PHP的'return'確實。我已經驗證了這一點。 – neezer 2011-04-27 17:28:38

+0

哦,好的。趕快行動吧! – 2011-04-27 17:29:32