我在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="<!doctype html><html><head><metahttp-equiv="content-type" cotring)";
document.write(htmlString);
</script>
</body>
</html>
由于
答案 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'));
它应该像你想要的那样工作。