【发布时间】:2019-02-18 12:34:05
【问题描述】:
美好的一天。尝试从“脚本”标签解析文本并将其转换为“JSON”。 所以,$arSlider 变量完美转换为json,但是$arOffers 没有转换,而是输出了字符串。代码中有cmets。 我做错了什么?
样本值 $arOffers = {"1441":{"ARTIKUL":"01001","PROPS":[{"VALUE":"Клинок - Полированный","NAME":"Покрытие\\цвет клинка "},{"VALUE":"Рукоять - Эластрон","NAME":"Рукоятка"},{"VALUE":"Чехол - Натуральная кожа со вставкой из АБС пластика","NAME":"Чехол"}]},"1442":{"ARTIKUL":"01003","PROPS":[{"VALUE":"Клинок - Стоунвош черный","NAME":"Покрытие\\цвет клинка "},{"VALUE":"Рукоять - Эластрон","NAME":"Рукоятка"},{"VALUE":"Чехол - Натуральная кожа со вставкой из АБС пластика","NAME":"Чехол"}]}}
include('/inc/simple_html_dom.php');
$url = 'Already to nothing, the problem is solved!';
$html = file_get_html($url);
foreach ($html->find('script') as $el) {
if (stristr($el->outertext, "arSlider") !== false) {
$script = str_replace("'", '"', trim(stristr($el->outertext, "arSlider")));
$script = explode(" arOffers = ", $script);
$arSlider = str_replace("arSlider = ", "", $script[0]);
$arSlider = str_replace(";", "", $arSlider);
$arOffers = str_replace("; ", "", $script[1]);
$arOffers = str_replace("</script>", "", $arOffers); //Add
print_r(json_decode($arSlider));
print_r(json_decode($arOffers));
//It's working! )))
}
}
更新
问题告诉我var_dump(json_encode($ arOffers));
该行没有显示结束标签</script>
添加了替换,它起作用了! )))
【问题讨论】:
-
$arOffers 的实际价值是多少?
-
请告诉我们
$arOffers实际包含的内容。您也可以使用json_last_error_msg() 进行更多调试。 -
实际包含
-
{"1441":{"ARTIKUL":"01001","PROPS":[{"VALUE":"Клинок - Полированный","NAME":"Покрытие\\цвет клинка"} ,{"VALUE":"Рукоять - Эластрон","NAME":"Рукоятка"},{"VALUE":"Чехол - Натуральная кожа со вставкой из АБС пластика","NAME":"Чехол"}]}," 1442":{"ARTIKUL":"01003","PROPS":[{"VALUE":"Клинок - Стоунвош черный","NAME":"Покрытие\\цвет клинка"},{"VALUE":"Рукоять - Эластрон","NAME":"Рукоятка"},{"VALUE":"Чехол - Натуральная кожа со вставкой из АБС пластика","NAME":"Чехол"}]}}
-
请用内容而不是评论更新您的问题