Хранение большой переменной в постоянном хранилище HTML5 из ​​действия, выполняемого в сценарии PHP - PullRequest
0 голосов
/ 29 сентября 2011

Я начну с краткого изложения того, что на самом деле следует делать ...

Извлечь все содержимое веб-страницы, превратить в строку и сохранить в постоянном хранилище.Однако по какой-то причине это просто ... не так?

Я использовал html-сущности php, а затем 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 ]

2 голосов
/ 29 сентября 2011

Нашел решение после быстрого поиска

Общие источники неопределенного строкового литерала

Это был разрыв строки из php-кода, который его убивал.

Это исправило это прекрасно

$str = str_replace(array("\r", "\n"), '', $str);
2 голосов
/ 29 сентября 2011

Вы имеете в виду:

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?
  • Есть новые строки, поэтому вы должны удалить их, так как у вас есть неопределенная строка
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...