javascript中的变量打印

时间:2010-07-27 18:56:02

标签: php javascript html string

我在javascript中有变量打印的问题。

变量htmlString打印无效: document.write(htmlString)

<?php  $htmlString= htmlspecialchars(file_get_contents('http://google.com'));?>
<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <script type="text/javascript">  
      var htmlString="<?php echo $htmlString; ?>";
      document.write(htmlString);
    </script>

  </body>
</html>


编辑:

网页来源结果: - 在htmlString中获取所有google.com,不在页面上打印var (我剪切了htmlString的所有内容,因为它很长)

<html>
  <head>
    <title></title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <script type="text/javascript">  
      var htmlString="&lt;!doctype html&gt;&lt;html&gt;&lt;head&gt;&lt;metahttp-equiv=&quot;content-type&quot; cotring)";

   document.write(htmlString);
    </script>

  </body>

</html>

由于

1 个答案:

答案 0 :(得分:2)

为了使用file_get_contents提取远程页面,需要启用fopen_wrappers。如果您的主机禁用此功能并且允许cURL()我会选择此路由。 cURL通常也比file_get_contents快,因此这也可能是一个决定因素。

编辑:

您遇到的问题,尤其是谷歌,是因为它在网页中使用了JS代码。我只是var_dump'ed htmlString,它显示正常。但是当把它放回到JavaScript中时,它就变成了头脑。返回的错误是第8行的未终止字符串文字(通过Firefox的错误控制台)。可能是由于一些单引号等。在我的测试中,我尝试了htmlentities(),它工作并将数据显示给浏览器。要改变的部分是:


$htmlString= htmlentities(file_get_contents('http://google.com'));

它应该像你想要的那样工作。