我有一个函数,它返回一个jQuery插件的HTML代码字符串,使用PHP Markdown解析:
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 :(得分:1)
使用stripslashes()
后尝试使用Markdown
:
function awesome_function() {
$html = Markdown('# Hello World!');
$html = stripslashes($html);
return $html;
}
答案 1 :(得分:0)
这可能与魔术引号有关 - 你可以在这里阅读http://php.net/manual/en/security.magicquotes.php
答案 2 :(得分:0)
正如我们所知,你的代码中有这样的东西:
$awesome = new Awesome();
echo json_encode($awesome->awesome_function());
json_encode会在输出中添加斜杠,当你回显而不是从awesome_function返回时,将回显两个值,HTML,以及来自awesome_function的json_encoded响应(true | false | null)。