从PHP脚本中的操作运行中将大变量存储在HTML5持久存储中

时间:2011-09-29 14:31:35

标签: php javascript html5

我将首先简要介绍一下这实际应该做些什么......

获取网页的全部内容,转换为字符串,然后保存到持久存储中。但出于某种原因,它只是...不会?

我已经使用了php的html实体,然后使用了JSON Stringify,但它无法正常工作。

我的代码如下......

//arrays set above

$url =  "http://www.google.co.uk";

$handle = fopen($url, "r");

$contents = stream_get_contents($handle);

$contents = htmlentities($contents);

echo "<script lang='text/javascript'>var dataString = JSON.stringify('".$contents."'); tokens[".$t." = ".$rowtokens[5]."]; toStore[".$t." = dataString]; alert('CONTENT'); </script>";

编辑:

该源代码呈现以下内容

<script lang='text/javascript'>tokens[0 = tokenvalue here]; toStore[0 = "&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD X... 
//All the rest of the html of the page.
"];localStorage.setItem(token[0], toStore[0]);</script>

2 个答案:

答案 0 :(得分:2)

你的意思是:

tokens['".$t."'] = '".$rowtokens[5]."';

目前正在评估:

tokens[something = test];

这是无效的,不能做你想做的事:

  • 一切都在房产名称内发生;什么都没有设置
  • 你没有引号可能搞乱事情

如果你的代码返回了这个:

<script lang='text/javascript'>tokens[0 = tokenvalue here]; toStore[0 = "&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD X... 
//All the rest of the html of the page.
"];localStorage.setItem(token[0], toStore[0]);</script>

然后它无效:

  • 这是<script type='text/javascript'>
  • 我不知道您对0 = tokenvalue here的意思(您在数字0中存储了一些内容,这是不可能的)。你的意思是tokens[0] = tokenvalue
  • 有换行符,因此您应该删除它们,因为您当前有一个未终止的字符串

答案 1 :(得分:2)

快速搜索后找到解决方案

Common sources of unterminated string literal

这是从PHP代码中删除它的行。

很好地解决了这个问题

$str = str_replace(array("\r", "\n"), '', $str);