Задать вопрос

Как распарсить javascript с помощью php?

Всем привет. Подскажите как можно распарсить такой JS, код с помощью PHP:

<script data-skip-moving="true" type="text/javascript">
	window.dataLayer = window.dataLayer || [];
	window.dataLayer.push({
		"ecommerce": {
			"detail": {
				"products": [
					{
						"id": "4580",
						"name" : "Название",
						"price": "Цена",
						"brand": "Бренд",
						"category": "Категория"
					}
				]
			}
		}
	});
	$('.em-add-to-card').mouseup(function(){
		window.dataLayer.push({
			"ecommerce": {
				"add": {
					"products": [
						{
							"id": "4580",
							"name" : "Название",
							"price": "Цена",
							"brand": "Бренд",
							"category": "Категория"
						}
					]
				}
			}
		});
	});
</script>


Сейчас использую Goutte клиент для парсинга (symfony/dom-crawler), но в нем нет возможности парсить JS.

На выходе хочу получить либо объект, либо массив:

"products": [
						{
							"id": "4580",
							"name" : "Название",
							"price": "Цена",
							"brand": "Бренд",
							"category": "Категория"
						}
					]


Чтобы с ним можно было хотя бы работать как с JSON, как можно это сделать? гуглил уже, но не нашел ничего подходящего.
  • Вопрос задан
  • 252 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
@dodo512
preg_match('~window\.dataLayer\.push\((\{.*?\})\);~s', $html, $m);
$r = json_decode($m[1]);
var_dump($r);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы