【问题标题】:HTML entity in JavaScript (XML and PHP)JavaScript 中的 HTML 实体(XML 和 PHP)
【发布时间】:2016-02-08 09:04:21
【问题描述】:

新手又遇到麻烦了)))需要你们的帮助!

我有一个包含如下数据的 XML 文件:

<Page>
<Content>&lt;p&gt;Article content&lt;/p&gt;&#13;
&#13;
&lt;h1 style="font-style: italic;"&gt;HEADER&lt;/h1&gt;&#13;
&#13;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;&#13;
&#13;
&lt;p&gt;&lt;img alt="" src="/upload/images/1.JPG" style="height:51px; width:144px" /&gt;&lt;/p&gt;&#13;
</Content>
</Page>

现在我想通过 PHP 提取这些数据并用 jQ 替换 html。

<?php
$file = '111.xml';
$XML = simplexml_load_file($file);
$str =$XML->Content;
$str = htmlspecialchars($str, ENT_QUOTES);
JS('var CONV = "'.$str.'"'); //JS function just puts its parametr between <script... tags
echo $str;
?>

<script type="text/javascript">
   $("#debug").html().text(CONV);
</script>     

所以结果什么都没有......如果我做 Echo - 它可以工作,如果我用“bla bla bla”之类的 smth 替换 CONV 值 - 它也可以工作。但是对于编码或解码的 HTML,它不会显示任何内容......

更新: 我仍然不知道问题出在哪里。我使用“缓冲区”文件作为临时灵魂:

file_put_contents('../plugins/'.pl_DIR().'/buffer.db', $str, LOCK_EX);
JS('$("#editor").load("../../plugins/"+PATH+"/buffer.db")');

通过 AJAX 可以完美加载内容,但无论如何我确定这不是最好的主意...

【问题讨论】:

    标签: javascript php html xml


    【解决方案1】:

    你应该尝试替换

    $str = htmlspecialchars($str, ENT_QUOTES);
    

    $str = htmlspecialchars_decode($str, ENT_QUOTES);
    

    http://php.net/manual/en/function.htmlspecialchars-decode.php

    前几天我遇到了类似的问题,这为我解决了。

    【讨论】:

    • 谢谢!但不幸的是,由于某种原因,这对我不起作用:(在我执行 'JS('var CONV = "'.$str.'"');' 之后它说 CONV 在日志中未定义。
    • 所以你得到了打印结果,现在你只需要用 jquery 获取 $str 。您可以改为执行 ajax-post 并返回 $str。见api.jquery.com/jquery.post
    猜你喜欢
    • 2013-08-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-02
    • 1970-01-01
    • 2013-10-18
    • 1970-01-01
    相关资源
    最近更新 更多