我正在构建一个小应用程序,它将接收用户HTML输入并将其转换为PHP电子邮件的人类可读格式。
示例
输入:
<html>
<a href="file.ext">file</a>
</html>
我希望它以文本格式出现:
<?php
$message = "<html>"
. "<a href='file.ext'>file</a>"
. "</html>";
?>
我已经掌握了语法和所有工作,但我的问题是HTML标记。即使我认为它们被编码(\x3C
,\x3E
),它们仍然显示为HTML - 所以我得到链接而不是文本输出。我还尝试了>
和<
。引号(\x22
/ \x27
)有效。
我的JS(使用jQuery):
function convert() {
$("#result").html("<?php<br/>$message = ");
var text = $("#html").val();
text = text.split("\n");
$("#html").val("");
for(var i=0; i<text.length; i++) {
text[i].replace("'","\x27");
text[i].replace('"',"\x27");
text[i].replace("<","\x3C");
text[i].replace(">","\x3E");
if(i<(text.length-1)) {
if(i==0) {
var line = "\x22"+text[i]+"\x22";
$("#result").append(line+"<br/>");
}
else {
var line = ". \x22"+text[i]+"\x22";
$("#result").append(line+"<br/>");
}
}
else {
var line = ". \x22"+text[i]+"\x22";
$("#result").append(line+";<br/>?>");
}
}
}
有谁知道为什么这不起作用?
答案 0 :(得分:2)
这可能是因为你正在使用&#34;追加&#34;它将HTML字符串作为参数并将其作为元素添加到DOM中。
您是否尝试使用text()替换append()?我尝试使用带有文本方法的HTML字符串,它在我的最终工作正常。
注意使用这两种方法时的区别:
var line = '<a href="#">foobar</a>';
// string
$('#result').text(line+"<br/>");
// OR string with the element's prior text value
var str = $('#result').text();
$('#result').text(str + line + "<br/>");
// element
$('#result').append(line+"<br/>");
希望有所帮助。